【当ブログではアフィリエイト広告を利用しています】

[PHP] 5.3系でDeprecatedエラーの対処方法

attention この記事は2年以上前の投稿になります。
記載された情報が古くなっている可能性がございますので十分ご注意ください。

PHP 5.3.0 からE_DEPRECATED エラーレベルが加わりました。
E_DEPRECATED エラーレベルは、 特定の機能が推奨されないことを表すエラーレベルです。

これによって、ライブラリなどで古い記述をされている場合はエラーとなってしまいます。
例えばこんなコードです。

$this->sample =& new Sample();

上記はPHP5から、オブジェクトは参照渡しがデフォルトになったため、”&” が不要になりました。

自分の作ったプログラムであれば、古い記述を変更すれば良いのですが、ライブラリなどはそうもいきません。
当然、この問題はライブラリを提供している側にも既知の場合が多く、バージョンアップすることで対応できてしまうことが多いため、必ず使っているライブラリが最新であるかは確認することをおすすめします。

ライブラリが対応していない等の場合の対処法ですが、「error_reporting」で制御します。

// 全てのエラー出力をオフにする
error_reporting(0);
// 旧デフォルトからE_DEPRECATEDをさらに除く
error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);

上記は、自分の作成したPHPのコード内で制御する場合ですが、「php.ini」を編集する場合や「.htaccess」で変更する場合は記述方法が異なりますので、ご注意ください。

ご意見・ご感想をお待ちしております。

いただいた情報は一般公開されません。(入力いただいたメールアドレスにてご返信させていただきます)
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。