What does =& mean in PHP?

前端 未结 3 1161
半阙折子戏
半阙折子戏 2020-12-03 07:17

Consider:

$smarty =& SESmarty::getInstance();

What is the & for?

3条回答
  •  孤城傲影
    2020-12-03 07:53

    It passes by reference. Meaning that it won't create a copy of the value passed.

    See: http://php.net/manual/en/language.references.php (See Adam's Answer)

    Usually, if you pass something like this:

    $a = 5;
    $b = $a;
    $b = 3;
    
    echo $a; // 5
    echo $b; // 3
    

    The original variable ($a) won't be modified if you change the second variable ($b) . If you pass by reference:

    $a = 5;
    $b =& $a;
    $b = 3;
    
    echo $a; // 3
    echo $b; // 3
    

    The original is changed as well.

    Which is useless when passing around objects, because they will be passed by reference by default.

提交回复
热议问题