×

php魔术方法的讲解与使用

php魔术方法的讲解与使用(详解php的魔术方法__get()和__set()使用介绍)

admin admin 发表于2023-12-11 15:57:10 浏览33 评论0

抢沙发发表评论

大家好,关于php魔术方法的讲解与使用很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于详解php的魔术方法__get()和__set()使用介绍的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

本文目录

详解php的魔术方法__get()和__set()使用介绍

先看看php官方文档的解释:__set()isrunwhenwritingdatatoinaccessibleproperties.__get()isutilizedforreadingdatafrominaccessibleproperties.究竟用中文怎么翻译呢?inaccessible:n.难达到;难接近;无法理解。有代码有真相:复制代码代码如下:《?phperror_reporting(E_ALL);classstu{private$a;private$b=0;public$c;public$d=0;//这里的private可以用protectedpublic替代privatefunction__get($name){return123;}//这里的private也可以用protectedpublic替代privatefunction__set($name,$value){echo"Thisissetfunction";}}$s=newstu();var_dump($s-》a);//output:123var_dump($s-》b);//output:123var_dump($s-》c);//output:nullvar_dump($s-》d);//output:0var_dump($s-》e);//output:123$s-》a=3;//output:Thisissetfunction$s-》c=3;//nooutput$s-》f=3;//output:Thisissetfunction?》结果分析:如果没有__get方法,执行var_dump($s-》a)var_dump($s-》b)会有致命的错误如果没有__get方法,执行var_dump($s-》e)会有一个notice,提示没有定义属性$e总结:1.从一个难以访问的属性读取数据的时候__get()方法被调用2.向一个难以访问的属性赋值的时候__set()方法被调用3.难以访问包括:(1)私有属性,(2)没有初始化的属性4.__isset()__unset()也类似

php的魔术方法

PHP的魔术方法:

1、__construct() :实例化对象时自动调用。

2、__destruct() :销毁对象或脚本执行结束时自动调用。

3、__call($name, $args) :调用对象不存在得方法时执行此函数。

4、__get() :获取对象不存在的属性时执行此函数。

5、__set() :设置对象不存在的属性时执行此函数。

6、__isset() : 检测对象的某个属性是否存在时执行此函数。

7、__unset() :销毁对象的某个属性时执行此函数。

8、__toString() :将对象当作字符串输出时执行此函数。

9、__clone() :克隆对象时执行此函数。

10、__autoload() :实例化对象时,当类不存在时,执行此函数自动加载类。

11、__sleep() :serialize之前被调用,可以指定要序列化的对象属性。

12、__wakeup :unserialize之前被调用,可以执行对象的初始化工作。

13、__set_state() :调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。


php什么是魔术方法

__construct(), __destruct(), __call(), __callStatic(), __get(), __set(), __isset(), __unset(), __sleep(), __wakeup(), __toString(), __invoke(), __set_state(), __clone() 和 __debugInfo() 等方法在 PHP 中被称为"魔术方法"(Magic methods)。在命名自己的类方法时不能使用这些方法名,除非是想使用其魔术功能。

详解php的魔术方法__get()和__set()使用介绍的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于详解php的魔术方法__get()和__set()使用介绍、详解php的魔术方法__get()和__set()使用介绍的信息别忘了在本站进行查找哦。