php 面向对象

访问控制

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 9.魔术方法的应用 __get()方法: 这个方法用来获取私有成员属性值的,有一个参数, 参数传入你要获取的成员属...
    PHPer_阅读 3,188评论 0 1
  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional...
    Tangbh阅读 1,651评论 0 0
  • (一):面向对象编程OOP OOP(Object-Oriented Programming), 面向对象的编程)技...
    楚江云阅读 5,770评论 2 24
  • 继承 运动员 所拥有的的属性和方法:姓名 身高 体重 所在球队 球员号码 讲话 行走 扣篮 运球 演员 所拥有的的...
    dptms阅读 4,181评论 0 1
  • 时至今日,母亲离开我们已经一年整了。我常常会想,也许,这只是一场恶梦罢。在我出现在叠彩园小区门口的时候,我仍能...
    赖赖1阅读 5,371评论 36 15