码迷,mamicode.com
首页 > Web开发 > 详细

php面向对象魔术方法

时间:2015-06-27 00:02:02      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:php 魔术方法

__construct($argv1,$argv2,…)

功能:类的构造方法,作用是初始化对象

参数:任意多个,任意类型

返回值:无

__destruct()

功能:类的析构方法,对象被销毁时被调用,作用是释放内存

参数:无

返回值:无

__get($name)

功能:当程序员试图调用一个未定义或者不可见的成员变量(属性)的时候就会调用该方法,这个时候程序试图调用的成员变量的返回值是该方法的返回值;

参数:$name为试图调用的成员变量的名称,这个参数的传递是PHP自动完成的;

返回值:类型(不确定)注意该方法可以设置成私有的(构造方法不要设置成私有的)。

__set($name,$value)

功能:当程序试图给一个未定义或者不可见的成员变量(属性)赋值的时候就会自动调用该方法;

参数:$name,$value分别表示试图赋值的成员变量名称和成员变量的值,这两个参数的传递是PHP自动完成的;

返回值:这个方法不会返回值 注意该方法可以设置成私有的(构造方法不要设置成私有的)。

__toString()

功能:当程序试图输出一个对象类型的变量的时候PHP会自动调用该方法;

参数:没有参数,如果有会提示出错;

返回值:字符型(该方法必须通过return返回一个字符串);

__clone()

功能:在用clone关键字克隆一个对象的时候PHP会自动调用这个方法,是为了给克隆出来的对象增添自己的属性和方法;

参数:不用传递参数;

返回值:不用返回值;

__call($name,$argument)

功能:当程序试图调用一个不存在的成员方法的时候会自动调用该方法;

参数:PHP将自动调用的不存在的方法名传递给$name,不存在的方法中的参数整合为一个数组传递给$argument;

返回值:不用返回值;

__autoload($classname)

功能:在指定的路径下自动查找并导入实例化需要使用的类

参数:$classname为类名

返回值:无   

__isset()

功能:当用isset($name)检测一个私有的成员变量的时候就会自动调用的方法,这个时候isset($name)的返回值就为该方法的返回值经过转化的布尔值(<除“0”>非空的字符串,非零,true,有单元的数组将会转化为true;0,“0”,空字符,NULL,没有单元的数组将会转化为false);

参数:$name为试图检测的成员变量的名称,这个参数的传递是PHP自动完成的;

返回值:类型(不确定)注意该方法可以设置成私有的(构造方法不要设置成私有的),当用isset()函数检测的是公

有成员变量的时候可以直接检测,如果没有__isset()方法而直接检测私有成员会得到不准确的结果即isset()会始终返回false;          

__unset()

功能:当用unset($name)撤销一个私有的成员变量的时候就会自动调用该方法;

参数:$name为试图撤销的成员变量的名称,这个参数的传递是PHP自动完成的;

返回值:不能返回值,强制返回值将会出错,当用__unset()方法而直接撤销私有成员不会成功;


本文出自 “羊仔” 博客,请务必保留此出处http://5934497.blog.51cto.com/5924497/1665974

php面向对象魔术方法

标签:php 魔术方法

原文地址:http://5934497.blog.51cto.com/5924497/1665974

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