Co robi =&
operator przypisania (equals-ampersand) w PHP?
Czy to jest przestarzałe?
Co robi =&
operator przypisania (equals-ampersand) w PHP?
Czy to jest przestarzałe?
Odpowiedzi:
Nie jest przestarzały i raczej nie będzie. Jest to standardowy sposób, na przykład, aby część jednej tablicy lub obiektu lustrzanego zmian wprowadzonych do innej, zamiast kopiować istniejące dane.
Nazywa się to przypisaniem przez odniesienie , co, cytując podręcznik, „oznacza, że obie zmienne wskazują w końcu te same dane i nic nie jest nigdzie kopiowane” .
Jedyną rzeczą, która jest przestarzała, =&
jest „przypisywanie wyniku new
przez referencję” w PHP 5 , co może być źródłem wszelkich nieporozumień. new
jest automatycznie przypisywany przez odniesienie, więc &
jest zbędny / przestarzały w $o = &new C;
, ale nie w $o = &$c;
.
Ponieważ wyszukiwanie jest trudne, zwróć uwagę, że =&
( równa się ampersand ) oznacza to samo, co = &
( równa się spacja ampersand ) i często jest zapisywane w taki sposób, że przechodzi do innej zmiennej, takiej jak $x = &$y['z'];
lub $x = &$someVar
( znak ampersand nazwa zmiennej ze znakiem dolara ). Przykład uproszczony z dokumentów:
$a = 3;
$b = &$a;
$a = 4;
print "$b"; // prints 4
Oto przydatne łącze do szczegółowej sekcji Przypisz przez odniesienie w podręczniku PHP . Ta strona jest częścią serii o referencjach - warto poświęcić chwilę na przeczytanie całej serii.
To dwóch różnych operatorów. =
to zadanie, jak zapewne wiesz. I &
oznacza, że zmienna powinna być dostępna przez odniesienie zamiast przez wartość.