FreeBSD - メンテナンス・トラブルシュート - PHP - PHP 7.2 - Methods with the same name as ...
- 1. 概要
- 2. 調査
- 3. 対応
1. 概要
ウェブサーバのエラーログに
/パス/ソースファイル名.php(56) : Deprecated - Methods with the same name as their class will not be constructors in a future version of PHP; gifcat has a deprecated constructor
てな警告が表示されます。
2. 調査
「PHP マニュアル - 付録 PHP 5.6.x から PHP 7.0.x への移行 - PHP 7.0.x で推奨されなくなる機能」に説明があります。
PHP 4 形式のコンストラクタ
PHP 4 形式のコンストラクタ (クラス名と同じ名前のメソッドを定義するもの) が非推奨となりました。将来的に削除される見込みです。 PHP 7 では、クラス内でこの形式のコンストラクタしか定義されていない場合に E_DEPRECATED が発生します。 __construct() メソッドを実装していれば、この警告は発生しません
例題として、下記の例が掲載してあります。納得できる話です。
<?php
class foo {
function foo() {
echo 'I am the constructor';
}
}
?>
3. 対応
実際にコンストラクタとして使用しているのか、1メソッドとして使用しているのかを確認する必要があるかと思います。
コンストラクタであれば、メソッド名を __construct() に変更します。
1メソッドとして使用しているのであれば、何か別の処理している内容を示すメソッド名に変更します。
|
|