Когда вы используете амперсанд перед переменной в PHP, вы создаете ссылку на эту переменную.
$foo = 'bar';
$baz = &$foo;
echo $foo //bar
echo $baz //bar
$foo = 'foobazbar';
echo $foo //foobazbar
echo $baz //foobazbar
До PHP5, когда вы создавали объект из класса в PHP, этот объект передавался в другие переменные значением . Объект НЕ был ссылкой, как это принято в большинстве других объектно-ориентированных (Java, C # и т. Д.) Языков.
Однако, создав экземпляр класса с амперсандом перед ним, вы можете создать ссылку на возвращаемый объект, и он будет вести себя как объект в других языках. До PHP5 это был обычный метод для достижения ООП-подобных эффектов и / или повышения производительности.