Що робить =&оператор призначення (рівний амперсанд) в 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 . Ця сторінка є частиною серії посилань - варто прочитати хвилину, щоб прочитати всю серію.
Це два різні оператори. =це призначення, як ви, мабуть, знаєте. І &означає, що до змінної слід звертатися за посиланням, а не за значенням.