首页 > 代码库 > 魔术方法
魔术方法
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():
当类的对象被克隆是自动调
在这里可以修改被克隆的数据值
魔术方法