ホームページ  >  記事  >  バックエンド開発  >  「: を使用して非静的メソッドを呼び出すと、E_STRICT レベルの例外が発生します。」 これは本当ですか?

「: を使用して非静的メソッドを呼び出すと、E_STRICT レベルの例外が発生します。」 これは本当ですか?

WBOY
WBOYオリジナル
2016-06-13 13:34:21765ブラウズ

「:: を使用して非静的メソッドを呼び出すと、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 の :: が曖昧になってしまいませんか?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。