魔术方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了魔术方法相关的知识,希望对你有一定的参考价值。

特点:

 

——(两个下划线)开头的类方法,会自动被调用。

常见的魔术方法有15个:

技术分享

__set(变量名称变量值)(不需要有返回值):在给不可访问属性赋值时,__set() 会被调用。

标准形式不能改:

技术分享

 

需要设置值和值的类的属性名称,

魔术方法必须是公共的(Public),且不能定义为静态的(static)被访问的属性名称,必须是字符串。当在类的外部调用不能直接访问不能直接访问的属性时,该函数会自动被调用。

 

property_exists(字符串形式的类名或要检查的对象,属性名字)— 检查对象或类是否具有该属性 。果该属性存在则返回 TRUE ,如果不存在则返回 FALSE ,出错返回 NULL 

 

 

__get(要调用的变量名):

标准形式不能改:

技术分享

 

读取不可访问属性的值时,__get() 会被调用

__get() 必须有返回值,最后肯定是以return结束。

unset() :销毁指定的变量。

Isset(): 检测变量是否设置

技术分享

当不可访问属性调用isset()或empty()时isset()会被调用,传入的类是属性名称。

如果属性存在则返回属性值,反之返回null。

__Call:在对象中调用一个不可访问方法时,__call会自动调用。

标准格式:

技术分享

__callStatic:用静态方式中调用一个不可访问方法时

标准格式:

技术分享

 

以上是关于魔术方法的主要内容,如果未能解决你的问题,请参考以下文章

PHP的魔术常量和魔术方法

php 魔术方法 和 魔术常量

php 魔术方法和魔术常量

PHP魔术方法和魔术变量

php -- 魔术方法魔术常量 简单介绍

PHP魔术方法和魔术变量总结