关于php7的cow bug

论坛上有报php7中仍然存在cow问题的bug

        $a = array(1,2,3);
        $b = array(1,2,3);
          
        $a[1] = "Long";
        $b[1] = "time";
          
        $x =& $b[1]; // 引用$b的一个元素,如果是直接引用$b 不会出错
          
        $c = $b; // 还是赋值。但是,这回真的还是按值拷贝吗?
          
        $c[1] = "no";
          
          
        print '$a='; print_r($a);
        print '$b='; print_r($b);    // bug
        print '$c='; print_r($c);
          
        unset($x); // 不再引用数组元素。
        unset($b); // 删除$b,减少一个引用。
          
        $d = $c; // 还是赋值。现在又是怎么拷贝呢?
          
        $d[1] = "see";
          
        print '$c='; print_r($c);    // $c和$d不影响。
        print '$d='; print_r($d);    //正常的拷贝

试了一下,还真存在问题。有兴趣的同学可以打印结果看下

发表评论

电子邮件地址不会被公开。 必填项已用*标注


*