новый оператор и опорная ошибка

$class_name = 'MDB2_Statement_'.$this->phptype; $statement = null; $obj =& new $class_name($this, $statement, $positions, $query, $types, $result_types, $is_manip, $limit, $offset); 

Вышеприведенный код старый, я хотел бы изменить его на что-то вроде

 $class_name='MDB2_Statement_'.$this->phptype; ... $obj_=new class_name($this, $statement, $positions, $query, $types, $result_types, $is_manip, $limit, $offset); $obj=&$obj_; 

Но это не приводит к правильному поведению. Может ли кто-нибудь предложить мне исправить?

[ UPDATE ], если я оставлю старый код таким, какой он есть, я запускаю некоторые «устаревшие предупреждения» на каждой загруженной странице просмотра

Устаревший: назначение возвращаемого значения new по ссылке устарело в C: \ xampp \ htdocs … \ APPLI \ php \ library \ PEAR \ MDB2.php в строке 391

например.

Я открываю этот файл и хотел бы каким-то образом отредактировать его (я не знаю), так как для устаревших уйти. Единственное текущее решение – переустановить XAMPP, который содержит соответствующую версию PHP, чтобы соответствовать той, в которой был написан старый. Я в недоумении, чтобы выяснить любой способ справиться с этими предупреждениями без какой-либо переустановки, я уверен, что я Не хотите видеть тех, кто устарел поверх каждой страницы вообще. Спасибо.

Единственное, о чем говорит PHP:

 $obj =& new $class_name... ^ 

Вам не нужно и не следует использовать назначение по ссылке больше, так как объекты всегда ссылаются на PHP 5. Просто избавьтесь от & , и все.

Таким образом вы можете создать ссылку на объект в php 5.3.10.

 $firstObj = new something(); $referenceObj = &$firstObj; 

Почему вы даже используете ссылочный оператор с объектами? Объект помещается в память, и все связанные с ним переменные изменят свою память.

Другими словами

 $a1 = new stdClass; $a2 = $a1; 

будет иметь такое же влияние, как:

 $a1 = 1000; $a2 = &$a1;