Sian 发表于 2016-1-1 16:14:54

PHP类中几个常用的魔术方法作用与实现

<?php       
       
        $str = file_get_contents("sian.txt");
        $sian = unserialize($str);
        echo $sian->age;
       
        class Person{
                public $name, $age, $sex;
               
                function __construct($name, $age, $sex){
                        $this->name = $name;
                        $this->age = $age;
                        $this->sex = $sex;
                }
                // 克隆魔术方法,$this代表副本
                // 通过克隆的对象在该方法中修改属性值
                function __clone(){
                        $this->name = "Sian1";
                }
                // 反串行化时,对象初始化
                // 与克隆类似,可在这里修改属性值
                function __wakeup(){
                        $this->age += 2;
                }
               
                // 调用了不存在的方法时,该方法被调用
                function __call($method, $argc){
                        echo $method."--";
                        print_r($argc);
                }
               
                // 对象的字符串表示,类似OC中的Description方法
                function __toString(){
                        return get_class($this)."->".$this->name;
                }
               
                // Sleep串行化成员变量,返回数组,数组元素为成员变量名
                // 如果不实现则串行化所有成员,为空则不串行任何成员
                function __sleep(){
                        return array("name");
                }
               
                // 析构方法,对象即将被释放时调用的最后一个方法
                function __destruct(){
                        echo "释放{$this->name}<br/>";
                }
        }
页: [1]
查看完整版本: PHP类中几个常用的魔术方法作用与实现