首页> 基础笔记 >PHP基础学习 >面向对象 面向对象

PHP面向对象特殊对象的复制(克隆)clone

作者:小萝卜 2019-09-03 浏览 888

简介特殊对象的复制(克隆)clone,特殊对象就是对象中含有子对象后资源属性,此对象在复制一份时,内部子对象和资源属性并没有复制一份。

PHP面向对象特殊对象的复制(克隆)clone

<?php
//特殊对象的复制(克隆)clone:
//特殊对象就是对象中含有子对象后资源属性
//此对象在复制一份时,内部子对象和资源属性并没有复制一份。

//测试
$f = new File("a.txt");
echo $f->myread(40);
echo "<hr/>";
echo $f->myread(40);

$f2 = clone $f;
//$f=null;
echo $f2->myread(40);
echo "<pre>";
var_dump($f);
var_dump($f2);


//定义一个文件信息读取类
class File{
    private $filename;
    private $flink;
  
    public function __construct($filename){
        //初始化文件信息
        $this->filename = $filename;
        //打开文件
        $this->flink = fopen($filename,"r");
    }
    
    public function myread($m){
       return fread($this->flink,$m);
    }
    
    public function __clone(){
        $this->flink = fopen($this->filename,"r");
    }
    
    public function __destruct(){
        if($this->flink){
            fclose($this->flink);
        }
    }
}

 

很赞哦! (0)

文章评论

    高端网站建设