__construct,
__destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
__wakeup, __toString, __set_state, __clone and __autoload1、__get、__set这两个方法是为在类和他们的父类中没有声明的属性而设计的__get(
$property ) 当调用一个未定义的属性时访问此方法__set( $property, $value )
给一个未定义的属性赋值时调用这里的没有声明包括当使用对象调用时,访问控制为proteced,private的属性(即没...
__sleep():当对象被当做文件保存时会自动触发的方法。该方法要做的事情,就是返回一个要保存的对象数据的数组DB.class.php中修改 再次保存效果 读取db对象 因为没有连接数据,不能操作。__wakeup():当对象是从文件里读出来进行反序列化得到对象的时候,会自动触发的方法wakeup是用来进行资源的初始化 原文:http://www.cnblogs.com/hf8051/p/4664767.html
<?phpheader("Content-type:text/html;charset=utf-8");class Person {//下面是人的成员属性,都是封装的私有成员private $name; //人的名子private $sex; //人的性别private $age; //人的年龄//__get()方法用来获取私有属性 public function __get($property_name) {echo "在直接获取私有属性值的时候,自动调用了这个__get()方法<br>";if (isset($this->$property_name)) {return($this->$property_name);} el...
Php5.0发布以来为我们提供了很多面向对象的特性,尤其是为我们提供了好多易用的魔术方法,这些魔术方法可以让我们简化我们的编码,更好的设计我们的系统。今天我们就来认识下php5.0给我们提供的魔术方法。魔术常量:
1。__LINE__
返回文件中的当前行号。
2。__FILE__
返回文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自PHP4.0.2 起,__FILE__总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。
3...
__sleep():使用serialize()序列化的时候,会检测类中是否有__sleep()魔术方法,有的话会先调用__sleep(),返回一个包含对象中所有需要序列化的变量名称的数组classtest{public$name='demon';private$age='19';publicfunction__sleep(){return ['name'];}
}$test = new test();
echo serialize($test);
//输出结果:O:4:"test":1:{s:4:"name";s:5:"demon";}__wakeup()使用serialize()序列化的时候,会检测类中是否有__wakeup()魔术...
__set()的作用:__set():在给不可访问属性赋值(private,protected,不存在)时,php就会执行__set()方法。上面我们说了__set()的作用是:在给不可访问属性赋值(private,protected,不存在)时,php就会执行__set()方法。这个是什么意思呢。比如说,我们还是以上面的实例为例。我们把猴子喜欢吃的桃子换成香蕉,但是根据规则来说,$food前面的关键词是protected ,不能直接访问,但是我们又需要对$food赋值,我们该怎么办呢?<?p...
与类有关的魔术常量:
__CLASS__,:获取其所在的类的类名。
__METHOD__:获取其所在的方法的方法名。class A{function f1(){echo __CLASS__; //输出“A”echo __METHOD__; //输出“f1”//注意:get_class()也可以得到类名,但其必须有个“对象”}}数据(变量)序列化/反序列化
什么叫序列化:
就是将一个变量的数据“转换为”字符串——但并不是类型转换。
其目的(意图)是将该字符串“存储起来”(比如存为文本文件)
然后在...
魔术常量:1。__LINE__返回文件中的当前行号。2。__FILE__ 返回文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自PHP4.0.2 起,__FILE__总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。3。__FUNCTION__ 返回函数名称(PHP4.3.0 新加)。自PHP5 起本常量返回该函数被定义时的名字(区分大小写)。在PHP4 中该值总是小写字母的。4。__CLASS__ 返回类的名称(PHP4.3.0 新加)。自PHP5 起本常量返...
php魔术方法:1、【_sleep()】控制对象序列化时真正处理的部分;2、【_wakeup()】在反序列化后还原对象属性;3、【_toString()】对象转换成为字符串的机制。本教程操作环境:windows7系统、PHP5.6版,DELL G3电脑。php魔术方法:_sleep() 可以控制对象序列化时真正处理的部分_wakeup() 在反序列化后还原对象属性_toString() 对象转换成为字符串的机制 把php变量转换成一串编码后字符串,方法为serialize() 反序列化unserialize() ...
No.1 __construct()定义:类的构造函数
解释:对象创建后第一个被自动调用的方法,通常被用来执行一些有用的初始化任务,例如在创建对象时对成员属性赋予初始值。
例子:
Class Person{public $name;public $age;public $sex;public function __construct($name = , $sex = 男, $age = 28) {$this->name = $name;$this->sex = $sex;$this->age = $age;}}注意:如果子类中定义了构造函数则不会调用其父类的构造函数。要执行父类的构...
php魔术方法的作用:1、【__construct()】实例化对象时自动调用;2、【__destruct()】销毁对象或脚本执行结束时自动调用;3、【__call()】调用对象不存在得方法时执行此函数。本教程操作环境:windows7系统、PHP5.6版,DELL G3电脑,该方法适用于所有品牌电脑。php魔术方法的作用:1、__construct() :实例化对象时自动调用。2、__destruct() :销毁对象或脚本执行结束时自动调用。3、__call() :调用对象不存在得方法时执行此函数...
php类的魔术方法有:1、“__sleep”方法,返回一个包含对象中所有应被序列化的变量名称的数组;2、“__wakeup”方法,与“__sleep”相反;3、“__tostring”方法,返回一个类被当做字符串时要输出的内容等等。推荐:《PHP视频教程》PHP类的魔术方法PHP将所有以双下划线(__)开头的类方法保留为魔术方法,所以在定义类方法时除了以下魔术方法,建议不要以__开头。__sleep:返回一个包含对象中所有应被序列化的变量名称的数组。seri...
php对魔术方法的认识:1、【_set】属性不存在时自动设置属性;2、【__get】属性不存在或不能读取时,设置该方法可读取;3、【__call】方法不存在时,执行;4、【__callStatic】静态方法不存在时,执行。php对魔术方法的认识:1、_set:属性不存在时自动设置属性/**
* 属性不存在时通过__set自动设置属性
* @param $key [键名]
* @param $value [属性值]
*/
function __set($key,$value){
$this->arr[$key] = $value;
}代码:
$obje...
在php中将所有以“__”即两个下划线开头的类方法保留为魔术方法,PHP中魔术方法有“__construct()”、“__destruct()”、“__call()”、“__callStatic()”等等。魔术方法有:1、__get、__set 这两个方法是为在类和他们的父类中没有声明的属性而设计的 __get( $property ) 当调用一个未定义的属性时,此方法会被触发,传递的参数是被访问的属性名 __set( $property, $value ) 给一个未定义的属性赋值时,此方法会被触发,传递的参数...
php5中魔术方法函数有:“__sleep”、“__wakeup”、“__toString”、“__construct”、“__destruct”、“__call”、“__get”、“__set”、“__isset”、“__unset”等。推荐:《PHP视频教程》php5中魔术方法函数PHP5 中包含着很多的魔术方法,它们最典型的特点是都以双下划线 __ 开头,这些魔术方法都是为了完成某些指定的功能而编写的。__sleep,在 serialize() 序列化对象之前会调用这个函数。__wakeup, 在 unserialize() 解序...