首页 > 代码库 > 魔术方法

魔术方法

1.魔术方法:

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

 

①__get():

__get魔术方法,当在类的外部调用不能直接访问的属性时,该函数方法被自动调用
 下面的格式是该魔术方法的标准形式,不能改变
  魔术方法必须是公共的(public),且不能定义为静态的(static)
 __get必须有返回值,所以最后结束的肯定是return语句

注意:property_exists 它用于判断类当中是否包含某个指定名称的属性

②__set():

魔术方法__set,当设置类中的不能直接访问的属性时,自动调用该函数方法
下面的格式是该魔术方法的标准形式,不能改变
 __set不需要返回值

③__isset():

魔术方法,判断类中的属性是否被设置了
当对不可访问属性调用 isset() 或 empty() 时,__isset() 会被调用。

④__unset():

当对不可访问属性调用 unset时,__unset()会被调用。

⑤__call():

在对象中调用一个不能直接访问的非静态方法时,__call() 会被自动调用

⑥__toString():

它也是魔术方法,当以字符串格式输出类的对象时,默认自动调用
该函数方法结束时必须有一个return语句,并且返回值必须是字符串

⑦__clone():

当类的对象被克隆是自动调
在这里可以修改被克隆的数据值

魔术方法