码迷,mamicode.com
首页 > 其他好文 > 详细

魔术方法(部分)

时间:2017-07-19 18:52:42      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:name   字符串   下划线   ati   arguments   php   argument   自动   set   

PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法

之前的构造函数与析构函数也都是魔术方法

 

__set()

当对类中的不能直接访问的属性赋值时,该方法被自动调用

__set不需要返回值

格式:   Function __get($name,$value) {}

 

__get():

在类的外部调用不能直接访问的属性时,该函数方法被自动调用

魔术方法必须是公共的,且不能定义为静态的

被访问的属性的名称,它必须是一个字符串

__get必须有返回值,所以最后结束的肯定是return语句

格式:   Function __get($name) {}

 

__isset():

判断类中的属性是否被设置了

当对不可访问属性调用 isset()  empty() 时,__isset()会被调用。

传入的是类的属性名称

如果属性存在,则返回属性的值,如果不存在,返回null

格式:   Function __isset($name) {}

 

__unset():

销毁指定的变量

格式:   Function __unset($name) {}

 

__call():

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

$name 被访问的函数方法的名称,字符串格式

$arguments 传递过来的函数方法的参数,数组格式

格式:   Function __call($name,$arguments) {

if(method_exists($this,$name))
{
     call_user_func_array(array($this,$name),$arguments);
}
else
{
    echo ‘没有对应的函数可以被调用‘;
}

}

 

__toString():

当以字符串格式输出类的对象时,默认被自动调用

该函数方法结束必须有一个return语句,且返回的值必须是字符串

格式:   Function __toString() {}

 

__clone()

当类的对象被克隆时自动调用执行

 

魔术方法(部分)

标签:name   字符串   下划线   ati   arguments   php   argument   自动   set   

原文地址:http://www.cnblogs.com/zhubaixue/p/7207275.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!