10分钟学会php面相对象基础(Ⅳ)
子曰:"温故而知新,可以为师矣"
一二三中的内容,整理目录如下:
建立 class person{...}
实例化class $p1 = new person();
继承类 class children extend person{...}
继承中说到了可以增加自己的属性和方法;
两个方法 构造方法 __construct 和 析构方法 __destruct;
private,protected,public这三种等级的属性、方法已经调用的限制;
可以通过__construct 来实现对私有属性的赋值;
在此基础上,提供 __set($name,$value) 设置,__get($name)获取 以及是否设置了属性的 __isset($name) 和 清空属性值的 __unset($name) 方法;
通过 parent::在一定意义上实现重载,为子类添加一些父类方法中不存在的功能;
final 定义一些不能再被复制的类或者方法;
static 方法或属性,定义静态类和属性,这些静态类和属性会让所有的继承者们使用同样的静态空间里的内容,静态方法只能调用类中的静态属性,静态属性、方法要用 类名::属性/方法来调用;
const定义常量 const pi = "3.14";也使用 类名::pi 来使用;
__toString(){ } 本来如果直接 echo $p1是会报错的,但是在__toString里设定了返回值,在输出就会输出设定的返回值了;
clone 和 __clone() 克隆实例,获得一个一模一样的实例;可以通过 __clone() 定义克隆后的一些变化, __clone(){ $this->age = $this->age."hehe"};
__call(){$name,$array} 当调用了不存在的类的方法的时候,如果预先定义了 __call可以绕过错误,继续执行,同时获取 这个不存在的方法名和参数,参数以数组返回;