- PHP
- 2015-12-14
この記事は最終更新日から1年以上経過しています。
とある環境でPHPをバージョンアップしました。
5.2.8から5.3.6へバージョンアップ。
仕様変更により推奨されない関数(Deplecated)でエラー。
今回はereg関連の関数でエラーでした。
代わりにpreg_matchを使用するようになっています。
他にも推奨されなくなった関数がありますので、詳しくは下記URLを参照してください。
PHP 5.3.x で推奨されない機能
その他、PEAR::DBでエラー。
元々のバージョンが以下の通り。
PEAR 1.50.2.18
DB 1.86
DBの
@$obj =& new $classname;
がエラー元。
これは推奨されない機能の「new の返り値を参照で代入すること」に当たります。
PHP5以降、new演算子は自動的に参照を返すようになりました。
以前までこれはE_STRICT(デフォルトではエラーが発生しないレベル)でしたが、
5.3以降ではE_DEPLECATEDが発生します。
5.3.xでは正しくは以下のようになっていないといけません。
@$obj = new $classname;
PEAR::DBを1.86から1.9.2へバージョンアップすることで解決しました。
1,248 views