PHP 开发人员常玩的五个魔术,还不会就low了

魔术方法: 是指某些情况下,会自动调用的方法,称为魔术方法

我们先认识下,下面的这些常用的魔术方法:__Tostring () __Call () __autoLoad () __isset () __unset ()

  1. /***

  2. 魔术方法:

  3. 是指某些情况下,会自动调用的方法,称为魔术方法

  4. PHP面向对象中,提供了这几个魔术方法,

  5. 他们的特点 都是以双下划线__开头的

  6. __construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state() 和 __clone()

  7. __construct :构造方法

  8. __destruct :析构方法

  9. __clone() :克隆方法,当对象被克隆时,将会自动调用

  10. ***/

  11. //__clone() :克隆方法,当对象被克隆时,将会自动调用

  12. class Human {

  13. public$age = 22;

  14. publicfunction __clone() {

  15. echo'有人克隆我!假冒';

  16. }

  17. }

  18. $lisi = new Human();

  19. $zhangsan = clone $lisi;

  20. /*

  21. 结果:

  22. 有人克隆我!假冒

  23. */

  24. ?>

1.__Tostring() 用于定义输出对象引用时调用 常用于打印一些对象的信息必须有返回值

PHP 开发人员常玩的五个魔术,还不会就low了

2.__isset() 判断类中不可见属性或方法是否存在时自动调用

我们先介绍一下isset方法,该方法用于判定属性和方法是否存在

如果我们使用isset(per->$name); // 返回值是false,但是$name属性的确存在,怎么解决呢?

1.将$name定义为私有属性

2.在类定义中添加

PHP 开发人员常玩的五个魔术,还不会就low了

这样,再次调用isset($name);返回值就为true了;

3.__unset() 清除类中私有变量时自动调用

与之结合的是unset() ,可以删除属性,当我们需要删除类中属性的时候,公有属性我们可以直接

删除,如果是私有属性我们仅仅通过这个方法就无法实现了

那到底怎样实现呢?我们可以使用__unset()方法实现这个功能但我们需要在类中添加

PHP 开发人员常玩的五个魔术,还不会就low了

然后我们再调用unset($name);就可以删除person类中的私有属性$name了

4.__call()方法当调用类实例中不存在的函数时 [自动执行]

如果试图调用类中不存在的函数,会出现语法错误

这时我们可以在类中声明Call()方法;

PHP 开发人员常玩的五个魔术,还不会就low了

5.__autoLoad [自动加载] 使用的类文件 该函数是在引用的页面添加

我们都使用过这样情况,在页面中需要调用其他php文件,我们需要使用include方法

但是如果有几十个页面需要引用,未免太过繁琐,我们可以在该页面中使用autoload方法

PHP 开发人员常玩的五个魔术,还不会就low了

这样凡是引用到其他类的地方,都会自动引用该类文件 前提类文件的名称必须是 类名.php

内容就到这里了, 大家都学会了吗,没有的话,QQ搜索【php学习特邀群】,可以一起交流下这些有趣的东西,也可以来这里学习~等你来


分享到:


相關文章: