读书随码《php核心技术与最佳实践》面向对象的形与本

来源:互联网 发布:淘宝两份订单一起付钱 编辑:程序博客网 时间:2024/06/05 02:36
<?php    /**     * created by yijie wang on 2015-11-12 15:55:35     * PHP的类     */    class Person    {        private $name;        private $age;        /**         * 构造函数         * @param [string] $name [名字]         * @param [int] $age  [年龄]         */        function __construct($name, $age)        {            $this->name = $name;            $this->age = $age;        }        public function say()        {            echo "my name is ", $this->name, " age is ", $this->age, "\n";        }        /**         * 析构函数         */        public function __destruct(){}    }    $xiaoming = new Person("哀木涕", 20);    //php中的对象是由数组模拟出来的, 可以把对象转化成数组    print_r(array($xiaoming));    /**     * Array     * (     * [0] => Person Object     *    (     *       [name:Person:private] => 哀木涕     *       [age:Person:private] => 20     *    )     * )     */    var_dump($xiaoming);    /**     * object(Person)#1 (2) {     *     ["name":"Person":private] => string(9) "哀木涕"     *     ["age":"Person":private] => int(20)     * }     */    echo "<hr />";    //直观的看到,对象就是一堆数据,可以把一个对象存储起来,这就是序列化    //序列化是指把存在于内存中的各种对象状态(属性)保存起来,并在需要的时候    //反序列化    //把一个对象存到文件里    $str = serialize($xiaoming);        //O:6:"Person":2:{s:12:" Person name";s:9:"哀木涕";s:11:" Person age";i:20;}    file_put_contents('store.txt', $str);       //二进制    //从文件中取出序列化字符串,并进行反序列化    $str = file_get_contents('./store.txt');    $xiaoming = unserialize($str);    $xiaoming->say();    //不难发现,对象序列化后存储的只是对象的属性,可见,类是属性和对象的集合    //而对象则是属性的集合,在类的方法区中存储的方法,由该类的对象共享 ?>
1 0
原创粉丝点击