ホームページ >バックエンド開発 >PHPチュートリアル >「: を使用して非静的メソッドを呼び出すと、E_STRICT レベルの例外が発生します。」 これは本当ですか?
「:: を使用して非静的メソッドを呼び出すと、E_STRICT レベルのエラーが発生します。」
class mycls{
function func()
{
echo "none static";
}
}
mycls::func();
?>
ここに静的メソッドがなくても実行でき、エラーは発生しません
------解決策---------
その前に error_reporting(2048) を追加します。エラーが表示されます
それでも表示されない場合は、ini_set('display_errors',true);
------解決策---------
これは、PHP が常に残した問題です。
エラー メッセージが表示されなかった理由は、報告されたエラー カテゴリに E_STRICT が含まれていなかったためです。
error_reporting(E_ALL | E_STRICT); 先頭に追加するだけでわかります。
------解決策------------------
厳格な標準: 非静的メソッド mycls:: func () は静的に呼び出すべきではありません
エラー表示をオフにするのは 1 つの方法ですが、目的を達成するには別の方法もあります
たとえば、実行中に表示をオフにするなどです。
------解決策----------------------
実際、このエラーは次の形式で報告されるべきではありませんでした。そもそも
静的メソッドかどうかに関係なく、
にアクセスするには :: を使用できるはずです。そうでないと、prean::medhod の :: が曖昧になってしまいませんか?