这些运算符之间有什么区别=和=&

时间:2013-08-25 05:36:39

标签: php operators

来自php docs

我发现了这一点但完全混淆了这些运算符(= and =&)

之间的区别
$instance = new SimpleClass();

$assigned   =  $instance;
$reference  =& $instance;

有人能解释一下吗?

2 个答案:

答案 0 :(得分:1)

    <?php
    $a = 1;
    $b = $a;
    $b = 2;
    echo "a:{$a} / b: {$b}<br />";
    // returns 1/2

    $a = 1;
    $b =& $a;
    $b = 2;
    echo "a:{$a} / b: {$b}<br />";
    // returns 2/2
     ?>
Above example clarifies the difference

答案 1 :(得分:0)

您可能会理解如下:

$instance = "5";
$assigned = $instance; // stores "5"
$reference =& $instance; // Point to the object $instance stores "5"
$instance = null; // $instance and $reference become null

这意味着

  

$ instance的值为“5”将为null

     

$ assigned的值为“5”不会为null,因为它与“5”

一起存储      

$ reference的值为“5”将为null,因为它指向$ instance