エラーが発生しました。
このようなオブジェクトを割り当てようとすると:
$obj_md = new MDB2();
私が受け取るエラーは、「参照によるnewの戻り値の割り当ては非推奨です」です。実際に私は解決策を探していましたが、私が見た唯一の解決策は、php.ini(error_reporting)の政治を拒否することです。私も試してみましたが、うまくいきませんでした。
とても紛らわしいです。助けていただければ幸いです。前もって感謝します。
PHP5では、このイディオムは非推奨です
$obj_md =& new MDB2();
サンプルコードでアンパサンドを見逃していないことを確認してください。それはあなたが述べる警告を生成しますが、それは必須ではなく、削除することができます。
このイディオムがPHP4で使用された理由を確認するには、 このマニュアルページ を参照してください(PHP4は長い間使用されておらず、このリンクは関連ページのアーカイブバージョンへのリンクです)
最近、SimplePie( http://simplepie.org/ )を使用するサイトを、PHP 5.2.17を使用していたサーバーからPHP 5.3を使用するサーバーに移動しました。 2。この移動の後、次のようなエラーメッセージのリストを受け取り始めました。
非推奨:参照によるnewの戻り値の割り当ては、.../php/simplepie.incの738行目で非推奨です
この問題に関するいくつかの議論を確認した後、=&newのすべてのインスタンスを=に置き換えることで問題を解決しました。 simplepie.incファイルのnew。
これらのエラーメッセージが受信されるすべてのインスタンスでこれが機能するかどうかを知るのに十分な経験はありませんが、この特定のケースでは機能し、試してみる価値があるかもしれません。
おそらく、MDB2のコンストラクターには、$ variable =&new ClassName();を使用するコードがいくつかあります。
Nitinは正しい-問題は実際にはMDB2コードにあります。
PEARの置き換え:PHP 5.3のMDB2 に従って、PHP5.3互換のバージョンのMDB2のSVNバージョンに更新できます。
その答えは2010年3月に与えられたので、 http://pear.php.net/package/MDB2/ は数か月後にリリースを示しています。 。
PHPで使用され、オブジェクトをメソッドに渡したり、参照によって新しいオブジェクトを変数に割り当てたりします。 PHP 5はデフォルトですべてのオブジェクトを参照渡しするため、PHP 5では非推奨です。
同じ問題がありました。私はすでに「&」を持っていますが、それでも同じ警告が出ていました。私はWAMPでPHP 5.3を使用していますが、 '&'記号を削除するだけで警告は消えました。
$obj= new stdClass(); //Without '&' sign.
$obj_md =& new MDB2();
のnew
を削除するだけです
コンソールからpear/MDB2をアップグレードします。
# pear upgrade MDB2-beta
# pear upgrade MDB2_Driver_Mysql-beta
これは、JoomlaではなくWAMP 2.0iパッケージに含まれるPHP 5.3が原因で発生しました。
修正するには2つの選択肢があります。
wAMP 2h(以前のバージョン)または download PHP 5.2.9-2 WAMP Webサイトからアドオンを使用します。