PHP już wykonuje operacje kopiowania przy zapisie, w których nie tworzy nowej wartości, dopóki czegoś nie zmienisz, więc nie ma dużo pamięci zaoszczędzonej przez użycie referencji. Może to nawet zepsuć niektóre rzeczy, które PHP robi wewnętrznie, aby zmniejszyć zużycie pamięci, a nawet pogorszyć sytuację.
Dodaj do tego fakt, że referencje sprawiają, że ogólnie rzecz biorąc jest to zbyt magiczne. Domyślną wartością, a więc tym, czego oczekuje większość ludzi, jest przekazywanie wartości; kiedy przechodzę $ido funkcji, ogromnie komplikuje to, że trzeba dbać o to, czy ta funkcja w tajemniczy sposób zmienia się $ina coś zupełnie innego, a tym samym na wszelki wypadek tworzy kopie obronne. (Może już modyfikować, $ijeśli wartość jest obiektem, ale moim zdaniem nie powinna.)
Zasadniczo uważam, że przekazywanie przez odniesienie jest przydatne tylko w przypadku parametrów „wyjściowych”, czyli zmiennych, których oczekuję wrócić z funkcji niż piłkę, a la preg_match„ów &$matches. Nawet w przypadku funkcji, które wyraźnie modyfikują przekazywany obiekt, na przykład sortlub array_pop, co wydaje się nieco nieprzyjemne ... ale z tym utknęliśmy.