zoukankan      html  css  js  c++  java
  • PHP 序列化与反序列化

    <?php
    class Stu{
        public $name;
        public $sex;
        public function intro(){
            print_r($this->name."--".$this->sex);        
        }
    } 
    
    $one = new Stu();
    $one->name = "chenbin";
    $one->sex = "man";
    //$one->intro();
    
    /*print_r((array)$one);
    var_dump($one);*/
    
    $str = serialize($one);
    file_put_contents("one.txt", $str);
    //反序列化
    $str = file_get_contents('one.txt');
    $one = unserialize($str);
    echo $one->name;
    
    $arr = $arrayName = array('a' => 1,'b'=>2 );
    $str = serialize($arr);
    file_put_contents('one.txt', $str);
    $str = file_get_contents('one.txt');
    $str = unserialize($str);
    print_r($str);
    
    ?>

    序列化。把对象按照一定规则,变成一段字符串,反序列化,把一段字符串,转化成一个对象。

    猜想:

      当new一个对象的时候,申请了一块内存,保存了这个序列化后的代码,当再次用到的时候,反序列化,得到这个对象所有。

         程序中,不管是数组,字符串,任何东西,都可以看成是一个对象。他们都在自己的生命周期内传递着各自的信息。

         通过var_dump 和 print_r(array($obj)),其实对象就是数组模拟的。

    积累知识,分享知识,学习知识。
  • 相关阅读:
    Super
    多态
    方法覆盖 和toString方法的作用
    Static 静态+this
    构造方法 + 继承
    使用方法重载的优缺点
    Erlang 简介与样例分析
    Assassin's Creed 4: Black Flag --《刺客信条4; 黑旗》
    DEVIL MAY CRY V:《鬼泣5》
    Valiant Hearts: The Great War -- 《勇敢的心》
  • 原文地址:https://www.cnblogs.com/bin-pureLife/p/4312187.html
Copyright © 2011-2022 走看看