php教程,如何理解类的魔术方法:__get()和__set()?
发布于 作者:苏南大叔 来源:程序如此灵动~

本文讨论php
代码中,类的魔术方法中的__get()
和_set()
。它是用于设置或获取类的普通属性的魔术方法。注意:这里并不涉及类常量,以及类的静态变量。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。本文测试环境:win10
,nginx@1.15.11
,php@8.2.10-nts
。当类属性无法被访问的时候(包括不存在或者private
等情况),就会触发本文的__get()
或者__set()
。
__get()
用于访问一个不能访问的普通类属性的时候,__get()
会被触发。
输出:
只要是通过->
访问的属性,就一定是public
的普通变量,不会是静态变量,也不会是常量。因为它们都是使用"::"访问的。但是使用->
访问的方法,则可能是普通方法,也可能是静态方法。
__set()
输出:
常量一旦定义则无法改变,所以,在外部试图使用::
修改常量,直接报错不符合语法。试图使用::$
修改一个静态变量,就需要确保是public static
的。
相关文章
- https://newsn.net/say/js-proxy-2.html
- https://newsn.net/say/php-class-chain.html
- https://newsn.net/say/php-static-var.html
- https://newsn.net/say/php-static-method.html
结束语
本文并未涉及静态变量以及常量相关的魔术函数,所以感知的仅仅是普通的类属性。更多苏南大叔的php
经验文章,请点击:


