zoukankan      html  css  js  c++  java
  • 注册自动加载方法,序列化以及继承和重写

    一、注册自动加载方法以及序列化的实现

    class Common{
    public function autoload($class_name){
    if(file_exists('./'.$class_name.'.class.php')){
    include('./'.$class_name.'.class.php');
    }else{
    echo 'error';
    }
    }

    public static function autoload1($class_name){
    if(file_exists('./'.$class_name.'.class.php')){
    include('./'.$class_name.'.class.php');
    }else{
    echo 'error';
    }
    }
    }
    //实例化类
    $obj = new Common;
    //注册autoload方法为自动加载方法
    //spl_autoload_register(array($obj,'autoload'));
    //注册autoload1静态方法为自动加载方法
    spl_autoload_register(array('Common','autoload1'));
    $arr=array('pass'=>'admin','dbname'=>'bbs');
    $db = new MYSQLDB($arr);
    echo '<pre />';
    var_dump($db);

    //序列化数据
    $data = serialize($db);
    file_put_contents('./12.10txt',$data);

    二、反序列化的实现

    /*第一,反序列化之后的对象的类名之所以发生了改变,是因为在反序列化的时候,也需要先找到该对象所属的类!如果找不到,则对象会被反序列化为__PHP_incomplete_class,是一个php的预定义的类!
    所以加载类文件
    */
    //include './MYSQLDB.class.php';
    function __autoload($class_name){
    if(file_exists('./'.$class_name.'.class.php')){
    include './'.$class_name.'.class.php';
    }
    }
    $data = file_get_contents('./12.10txt');
    //反序列化
    $data = unserialize($data);
    echo '<pre />';
    var_dump($data);

    其中有一个MYSQLDB.class.php 的文件,这里就不贴出来了

    三、继承和重写

    class Goods{
    public $goods_name;

    public function __construct($g_name){
    echo $this->goods_name = $g_name;
    }
    }
    //继承
    class Books extends Goods{
    public $author_name;
    //方法重写
    public function __construct($g_name,$a_name){
    //调用父类的构造方法
    parent::__construct($g_name);
    echo $this->author_name = $a_name;
    }
    }

    //实例化
    $books = new Books('围城','钱钟书');
    echo '<pre />';
    var_dump($books);

  • 相关阅读:
    关于命题“网络规划中一个VLAN要对应一个网段”的证明
    详谈为何两台主机网络掩码不一致可能导致ping不通
    为什么电脑的ip地址要和网关的ip同一个子网才可以上网?
    快速理解VirtualBox的四种网络连接方式(最详细)
    Ubuntu 16.04下安装OpenStack(juno)之add the compute service报错分析
    Ubuntu 16.04下安装OpenStack(juno) 之add the image service报错分析
    曲线
    Best Cow Fences
    愤怒的牛
    斐波那契数
  • 原文地址:https://www.cnblogs.com/zzmgg/p/6158528.html
Copyright © 2011-2022 走看看