#PHP #advice
Говорить, что объекты в PHP передаются по ссылке не совсем правильно.
В действительности, если объект передать в функцию и там изменить его состояние, то во внешней области видимости мы действительно получим измененный объект. Но если (без &) попытаться его обнулить (= null), то он не удалится и не изменится во внешней области видимости.
Всё дело в том, что при передаче объекта, как аргумента функции, он не является ссылкой(!). Объект внутри содержит копию идентификатора, который указывает на один и тот же объект.
В то же время, если указать амперсанд (&), то при изменении переменной внутри (присвоив тот же null), изменится переменная и снаружи.
Подробную инфу, с примерами, можно прочесть в документации.
Post #16
1.59K

- 🔥 1