php 魔术方法

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

2、注意事项

PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法。所以在定义类方法时,除了上述魔术方法,建议不要以 __ 为前缀。

3、__get 和 __set

__get:
__get魔术方法,它是在外部访问该类中不能直接访问的属性时自动被调用

魔术方法都有其默认的定义格式,不能随意的更改
魔术方法不能被添加static静态的修饰符,出了callstatic
__get魔术方法必须有一个返回值

__set:
__set魔术方法,在给类中无法直接访问的属性赋值时自动调用
 property_exists  检测类或者对象中是否包含指定名称的属性

4
__call 魔术方法:
在对象中调用一个不可访问方法时,__call() 会被调用。
method_exists 判断类中是否包含某个指定名称的函数方法
 



 


原文地址:https://www.cnblogs.com/zx997/p/7225847.html