PHP之十六个魔术方法详解

PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用。 魔术方法包括:

  1. __construct(),类的构造函数

  2. __destruct(),类的析构函数

  3. __call(),在对象中调用一个不可访问方法时调用

  4. __callStatic(),用静态方式中调用一个不可访问方法时调用

  5. __get(),获得一个类的成员变量时调用

  6. __set(),设置一个类的成员变量时调用

  7. __isset(),当对不可访问属性调用isset()或empty()时调用

  8. __unset(),当对不可访问属性调用unset()时被调用。

  9. __sleep(),执行serialize()时,先会调用这个函数

  10. __wakeup(),执行unserialize()时,先会调用这个函数

  11. __toString(),类被当成字符串时的回应方法

  12. __invoke(),调用函数的方式调用一个对象时的回应方法

  13. __set_state(),调用var_export()导出类时,此静态方法会被调用。

  14. __clone(),当对象复制完成时调用

  15. __autoload(),尝试加载未定义的类

  16. __debugInfo(),打印所需调试信息

php7.2下出现报错__autoload() is deprecated的解决办

     错误原因:__autoload魔术方法在php7.2被废弃,使用新的方法代替了.
     解决办法:把原来的__autoload()函数改为autoload(),然后加上一个spl_autoload_register(‘autoload’)的调用即可,如下:

     //自动加载类库 spl_autoload_register('autoload'); //PHP7.2开始必须这样写 //自动加载类库处理

function autoload($class){
	// 当底下实例化一个对象时,系统会自动检查你引入此文件,如果没有引入,自动帮你引入,但是注意一个问题,在写类名时一定要和文件名称一样,否则会引入文件失败
	include $class.".php";//引入文件
}

spl_autoload_register("autoload");//参数为:方法的名称

 

参考法接:https://segmentfault.com/a/1190000007250604
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值