这篇文章主要讲解了“PHP中常用的魔术方法有什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP中常用的魔术方法有什么”吧!
1、什么是魔术方法
系统在特定的时机自动调用的方法
2、常用魔术方法:
_get
触发时机:对象在外部访问私有成员或者受保护属性时调用
该方法有一个参数:参数就是属性名
我们以代码为例:
首先我们先建立一个新的文件,我们写一个class类,在类里面定义属性,然后我们创建一个对象,当我们去输出(echo)刚刚定义的类,我们会发现出现报错,因为对象只能访问公共的属性,我们不能访问受保护的和私有的属性,代码如下:
<?php class Person { public $name = '林徽因'; protected $pome = '答案很长,我准备用一生的时间来回答,你准备要听了吗?'; private $time = '民国' ; } $niu = new Person(); echo $niu->pome; ?>
代码显示结果:
我们会发现我们上述代码运行出现错误,因此,在外部不能访问受保护的和私有的属性,如果我们想要在外部试图通过对象来访问受保护的或者私有的成员属性时,就会自动的触发get方法。
public function __get($name){ echo $name; }
紧接着打印出$name,
代码显示结果:
因此我们通过上述代码可以使用if语句进行判断:
if ($name == 'pome'){ return $this->pome;
代码显示结果:
以上就是我们所说的get用法
--set
触发时机:对象在外部设置私有或者受保护成员属性值的时候调用
该方法有两个参数:
参数1:成员属性名!
参数2:要设置的值
我们以代码为例:
所有的魔术方法都是用public,和上述一样我们在类里面定义属性,然后我们创建一个对象,而set属性有两个参数,一个是属性名,一个是属性值,在类里面我们都打印出来;
public function __set($name,$value) { var_dump($name,$value); } } $niu = new Person(); //echo $niu->pome; $niu->pome = '答案很长,我准备用一生的时间来回答,你准备要听了吗?';
代码显示结果:
补充:(下次具体讲解)
在外部可以通过unset销毁对象中的public属性
_unset
触发时机:对象在外部销毁私有或者受保护成员属性的时候调用
该方法有一一个参数:参数就是私有的成员属性名
_isset
触发时机:对象在外部判断私有或者受保护成员属性的时候调用,
该方法有一个参数:参数就是私有的成员属性名
construct :构造方法
触发时机:在创建对象的时候自动调用
destruct:析构方法
toString (了解)
触发时机:echo-一个对象的时候触发
该函数需要return-一个字符串
__debugInfo (了解)
触发时机:var_dump--个对象的时候触发
该函数需要return-一个数组
感谢各位的阅读,以上就是“PHP中常用的魔术方法有什么”的内容了,经过本文的学习后,相信大家对PHP中常用的魔术方法有什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。