PHP 7でアプリを起動した時の非推奨エラーの対処方法です。
エラーの意味は非推奨 (deprecated)
PHP 7 以降のバージョンで、以下のようなエラー・メッセージが発生しました。
Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Application has a deprecated constructor in xxx.php on line 3
これはPHPのエラーレベルにE_DEPRECATEDが加わったためで、将来的にサポートされなくなる関数が使用されているときに出る警告です。
Deprecatedの日本語の意味は非推奨です。
E_DEPRECATEDは将来のバージョンで動作しなくなるコードに対する警告レベルであるため、エラーの非表示ではなくて、開発者に早めの対応することを推奨しています。
エラーの原因
エラーの原因は、PHP 4、5 のコンストラクタ宣言(function T())を用いていることです。
対処方法、解決方法は __construct() に変更
PHP 7 ではクラス名と同名のメソッドを定義することが出来なくなってしまいました。
解決方法は、__constructメソッドによる宣言(function __construct())を行います。
具体的には以下のように記述します。
1 2 3 4 |
class T { // function T() {} // ERROR: T has a deprecated constructor function __construct() {} // PHP 7 ready } |
Deprecatedエラーを非表示にして消す方法
Deprecatedエラーを非表示にして消すには、E_DEPRECATEDのエラーレベルを変更します。
エラーレベルを変更するには、 「~E_DEPRECATED 」をエラーレベルに追加します。
php.iniに書く場合、以下のように書きます。
1 |
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED |
コメント