これが StackOverflow に関する私の最初の質問です。そのため、以前にここで質問されたことがあると思いますが、検索バーに入力したものはすべて別の質問になります。(または、まったく「いいえ」の結果になることもあります!)
私は w3Schools で学習していますが、この一見単純なコード スニペットを見て、いくつかの疑問が生じました。
本質的に、コードは次のように述べています。
if(! test === FALSE)
display("test successful!");
else
display("test failed...")
この特定のケースでの" test " は、成功すると文字列を返し、失敗すると (ブール値の) FALSEを返します。
これが私の中でかき立てられた質問です。
条件付き/ifステートメントの先頭にある感嘆符(別名「論理NOT」または「否定演算子」)については、次のとおりです。
A) 括弧内のステートメント全体に適用されますか?、または
B)「テスト」にのみ関連付けられていますか?
注: この場合、否定演算子の結合性は結果を変えないかもしれませんが、その結合性は (! FALSE || TRUE) のような場合に重要になります。
否定演算子がブール値でどのように機能するかは理解していますが、(PHP) 文字列に直面したとき、否定演算子はどのように動作しますか?
A) 文字列が "true" や "0" などのトリッキーなものである場合、否定演算子の動作は変わりますか?
( ! test === FALSE)は(test !== FALSE)と同じですか? 「!==」だけを使わなかったのはなぜですか?
問題の実際のコードは次のとおりです。
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
echo("$email is a valid email address");
} else {
echo("$email is not a valid email address");
}
さらなる PHP の質問:この状況でfilter_input( )よりもfilter_var()を使用する利点はありますか? w3Schools が filter_var() を使用し、filter_input() を使用しなかったのはなぜですか?