php 魔术方法__get,PHP中常用魔术方法(学习笔记)

PHP的魔术方法由__双下划线开头,并为保留格式。也就是意味着自己命名的任何方法都不可以用__开头。所有魔术方法必须被定义为public。

构造和析构

__construct

每次创建新对象时,先调用此方法,适用于对象的一些初始化操作。

注意:如果子类有定义构造函数,如果想执行父类构造。要加parent::__construct()。如果子类没有构造函数,则如普通函数一样从父类继承。

老式PHP构造函数可以为类名,PHP7已弃用。

__destruct

对象的所有引用被删除,或被显式销毁时执行。

注意:parent::__destruct同上

使用exit()停止时也会执行。

如果在__destruct中调用exit()则会报错。

方法重载 Method Overloading

以下四个不能被声明为static,否则报错。

__call(string $name, array $arguments)

调用不存在的方法时执行。

__callStatic(string $name, array $arguments)

调用不存在的静态方法时执行

对象复制

__clone()

复制完成时,新创建的对象(复制生成的新对象)执行这个方法。

如果希望阻止对象复制,则声明成private

属性重载 Property Overloading

属性重载开发环境中慎用!

__set(string $name, mixed $value)

赋值一个不可访问的属性时调用。

__get(string $name)

读取一个不可访问的属性时调用。

__isset($name)

对一个不可访问的属性执行isset()或者empty()时调用

__unset($name)

对一个不可访问的属性执行unset()时调用

被当做字符串

__toString

当一个对象被当做字符串时的执行,比如echo/print

被当做函数

__invoke()

当一个对象被当做函数使用时执行。比如$obj(5)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值