zoukankan      html  css  js  c++  java
  • 简单理解php深复制浅复制问题

    其实接触深复制浅复制是通过学习c++了解到的,比如c++很好用的模板,php是不允许方法模板和类模板

    一个简单的例子,如果不是很了解php 的取地址符&,可以去看下官方文档,php的&就是别名

    class zx{
        
        public  $r ='44444444<br>';
        public function __construct() {
            
        }
        public function ccccc() {
            echo $this->r;
        }
    }
    
    $rr = new zx();
     
    //$ee = $rr;      1
    //$ee =&$rr;      2
    $ee = clone $rr;  3
    
    
    $ee->r ='33333<br>';
    
    $ee->ccccc();
    $rr->ccccc();

    1和2的运行结果是  33333<br>33333<br>

    3的结果是33333<br>44444444<br>

    只有在使用clone的时候才是真的裂变2个内存空间,不然都是使用的同一段内存

    比如还有一些复杂情况,依赖注入的时候或者在使用类对象变量注入类方法的时候,一些特殊状况等

    一个小例子,抽象方法的也不一定非需要继承才能使用比如,某个抽象方法里面有个static 静态方法也是可以直接使用到的

    注意:静态方法不能使用$this操作变量和方法,不然会报错

    abstract class vv{
        
        static $tt ='1111';
        public static function dddd() {
            echo self::$tt;
        }
    }
    
    vv::dddd();
  • 相关阅读:
    OpenLDAP备份和恢复
    OpenLDAP搭建部署
    Python正则表达式
    ansible学习
    Jenkins学习
    docker学习2
    让阿里告诉你, iOS开发者为什么要学 Flutter !
    用UIKit和UIView在视图上执行iOS动画
    iOS开发如何面对疫情过后的面试高峰期 !
    如何写好一个UITableView
  • 原文地址:https://www.cnblogs.com/zx-admin/p/6687753.html
Copyright © 2011-2022 走看看