访问控制
public 可在外部调用
protected 只能在类的内部 或者子类中调用
prrivate 只能在自身内调用
子类继续父类中的方法,public 和protected方法。如果子类要重写父类中的方法,则需保持父类访问控制权限,或者更加开放。
父类为public 则子类只能为public
父类为protected 则子类可以为protected public
父类为private 则子类可为 private protected public
如果有魔术方法不想被触发,可以使用protect 或者是private 可以实现魔术方法的触发。
如 禁止一个类被实例化
class A{
protected function __construct()
{
}
}
//此时,则会报错。
$a = new A;
魔术方法
构造函数和析构函数
__construct 在实例化一个类时触发
__destruct 在对象被销毁时触发
重载
当调用当前环境下未定义或不可见的类属性或方法,会调用的魔术方法
属性重载
在给不可访问属性赋值时 __set
读取不可访问属性的值时 __get
当对不可访问属性调用isset() 或者empty() __isset
当对不可访问属性调用unset() __unset
方法重载
在对象中调用一个不可访问方法时 __call
在静态上下文中调用一个不可访问方法时 __callStatic
其他
在类被序列化时 __sleep
在类被反序列化 __wakeup
一个类被当成字符串 __toString
当尝试以调用函数的方式调用一个对象时 __invoke
调用var_export()导出类时,__set_state
网友评论