Що робить =&
оператор призначення (рівний амперсанд) в PHP?
Це застаріло?
Що робить =&
оператор призначення (рівний амперсанд) в PHP?
Це застаріло?
Відповіді:
Це не застаріло і навряд чи буде. Наприклад, це стандартний спосіб зробити частину одного масиву або зміни дзеркала об’єкта, внесеного в інший, замість копіювання існуючих даних.
Це називається присвоєнням за посиланням , що, цитуючи посібник, "означає, що обидві змінні в кінцевому підсумку вказують на однакові дані, і ніде нічого не копіюється" .
Єдине , що є застарілим з =&
є «привласнення результату в new
вигляді посилання» в PHP 5 , який може бути джерелом плутанини. new
автоматично присвоюється посиланням, тому &
надлишковий / застарілий у $o = &new C;
, але не в $o = &$c;
.
Оскільки важко шукати, зауважте, що =&
( дорівнює амперсанд ) - це те саме, що = &
( дорівнює простору амперсанд ) і часто записується таким чином, що він стикається з іншою змінною, як $x = &$y['z'];
або $x = &$someVar
( ім'я змінної знака амперсанда ). Приклад спрощено з документів:
$a = 3;
$b = &$a;
$a = 4;
print "$b"; // prints 4
Ось зручне посилання на докладний розділ Призначення за посиланням у посібнику PHP . Ця сторінка є частиною серії посилань - варто прочитати хвилину, щоб прочитати всю серію.
Це два різні оператори. =
це призначення, як ви, мабуть, знаєте. І &
означає, що до змінної слід звертатися за посиланням, а не за значенням.