Функция и ее пример использования являются полностью поддельными:
$obj =& instantiate_class(new Foo());
Это то же самое, что и запись:
$obj =& new Foo();
Какой способ должен был быть выполнен в PHP4.
Начиная с PHP 5, вы можете просто написать:
$obj = new Foo();
, как вы, возможно, знаете.
На самом деле, как и вы, я не вижу никакого использованияфункционировать только с единственной целью, что это излишне.Это могло иметь некоторую потребность в прошлом (когда у него было какое-то другое определение).Я могу только предположить о его существовании, скорее всего, у разработчика были проблемы с пониманием ссылок / псевдонимов в PHP , который обычно не совсем понятен.
Редактировать: КакKingCrunch указал, что эта функция необходима, если вы хотите склеить PHP 4 с кодом PHP 5.3, потому что это предотвратит предупреждения строгих стандартов в PHP 5.3.Таким образом, вместо PHP 4 (потенциально необходимого)
$obj =& new Foo();
Это должно быть записано как
$obj =& instantiate_class(new Foo());
, которое скрывает предупреждение "Назначение возвращаемого значения нового по ссылке устарело"и позволяет кодировать в стиле PHP 4 для среды PHP 5.3.
Надеюсь, это поможет вам с вашей программной археологией .