$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;