2

これが StackOverflow に関する私の最初の質問です。そのため、以前にここで質問されたことがあると思いますが、検索バーに入力したものはすべて別の質問になります(または、まったく「いいえ」の結果になることもあります!)

私は w3Schools で学習していますが、この一見単純なコード スニペットを見て、いくつかの疑問が生じました。

本質的に、コードは次のように述べています。

if(! test === FALSE)
  display("test successful!");
else
  display("test failed...")

この特定のケースでの" test " は、成功すると文字列を返し、失敗すると (ブール値の) FALSEを返します。

これが私の中でかき立てられた質問です。

  1. 条件付き/ifステートメントの先頭にある感嘆符(別名「論理NOT」または「否定演算子」)については、次のとおりです。

    A) 括弧内のステートメント全体に適用されますか?、または

    B)「テスト」にのみ関連付けられていますか?

注: この場合、否定演算子の結合性は結果を変えないかもしれませんが、その結合性は (! FALSE || TRUE) のような場合に重要になります。

  1. 否定演算子がブール値でどのように機能するかは理解していますが、(PHP) 文字列に直面したとき、否定演算子はどのように動作しますか?

    A) 文字列が "true" や "0" などのトリッキーなものである場合、否定演算子の動作は変わりますか?

  2. ( ! 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() を使用しなかったのはなぜですか?

4

1 に答える 1