Что означает оператор PHP = & mean?

Возможный дубликат: что означают операторы «= &» и «& =» в PHP?

Я нашел оператор «= &» в следующем коде, и я не знаю, что это значит. Что это значит и что он делает?

  • В чем разница между ++ $ i и $ i ++ в PHP?
  • В чем разница между <> и! =
  • Разница между операторами «не равных» <> и! = В PHP
  • Функции PHP и @functions
  • Двойной не (!!) оператор в PHP
  • Что означают операторы «= &» и «& =» в PHP?
  • Код, где я его прочитал :

    function ContentParseRoute($segments) { $vars = array(); //Get the active menu item $menu =& JSite::getMenu(); $item =& $menu->getActive(); // Count route segments $count = count($segments); .... 

  • Как установить абсолютный путь include в PHP?
  • CodeIgniter: Try Catch не работает в классе модели
  • PHP - Сделать многомерный ассоциативный массив из строки с разделителями
  • «безопасный» json_decode (,,,) для предотвращения исчерпания памяти
  • PHP - Как вы находите дубликаты групп значений в массиве
  • Неожиданный скобок '
  • 3 Solutions collect form web for “Что означает оператор PHP = & mean?”

    Это не задание ( = ) по ссылке ( & ).

    Если бы вы сказали:

     $a = 42; $b =& $a; 

    Фактически вы говорите, что присваиваете $a ссылкой на $b .

    То, что назначает по ссылке, – это «связать» две переменные вместе. Теперь, если бы вам пришлось модифицировать $a позже, $b изменится вместе с ним.

    Например:

     $a = 42; $b =& $a; //later echo $a; // 42 echo $b; // 42 $a = 13; echo $a; // 13 echo $b; // 13 

    РЕДАКТИРОВАТЬ:

    Как отмечает Artefacto в комментариях, $a =& $b не совпадает с $a = (&$b) .

    Это связано с тем, что, в то время как оператор & означает ссылку на что-то, оператор = присваивает значение , поэтому выражение $a = (&$b) означает временную ссылку на $b , затем присваивает значение это временное значение до $a , которое не назначается по ссылке.

    Это оператор ссылочного присваивания .

    Это означает, что когда вы измените LHS оператора позже в коде, он изменит RHS. Вы указываете LHS на тот же блок памяти, что и RHS.

    Вот пример использования:

     $array = array('apple', 'orange', 'banana'); // Without & foreach($array as $d) { $d = 'fruit'; } echo implode(', ', $array); // apple, orange, banana // With & foreach($array as &$d) { $d = 'fruit'; } echo implode(', ', $array); // fruit, fruit, fruit 

    Это не объяснение, а пример того, как можно использовать оператор & без использования его в =& присваивании.

    PHP is the Best Programming Language in the world.