0

phpファイルで次のようなものを見たのですが、なぜ両方をチェックするのか疑問に思います。

if( isset($var) && $var ) {

// Code

}

これは意味がありますか?

4

3 に答える 3

3

isset-存在する場合はTRUEを返し、存在しない場合はFALSEを返します。それ以外の場合はFALSEです。

上記の例で。にとって$var = 0

issetの最初の条件はtrueを返し、2番目の条件はfalseを返します。

したがって、変数が設定されていてゼロ以外の値であるかどうかを確認する場合は、上記の条件が使用されます。

于 2012-12-31T05:13:32.127 に答える
3

isset変数が定義されている場合はtrueを返し、変数が空またはゼロでない場合はデフォルトのブールテストがtrueを返します。isset未定義の変数エラーを防ぐために、値をテストする前に使用する必要があります。

if ($var) // returns true if the variable isn't empty or zero

if (isset($var)) // returns true if the variable is defined and not NULL

PHPエラー報告レベルに通知(E_NOTICE)が含まれている場合、未定義の変数をテストすると、未定義の変数エラーが報告されます。

issetただし、関数の前に使用する必要はありませんempty

変数が存在しない場合、警告は生成されません。つまりempty()、本質的にはと同等の簡潔なもの!isset($var) || $var == falseです。

于 2012-12-31T05:16:56.617 に答える
1

「notices」をエラーとして報告してphpでコーディングすることをお勧めします。変数の値を確認しても、その変数が設定されていない場合は、タイプミスがあり、「エラー」のフラグが付けられている可能性があります。その後、タイプミスを修正して先に進むことができます。通知がなかった場合は、タイプミスを見つけることはできず、変数は空/ null / false(比較によって異なります)と同じになるため、おそらく「真」の状態になることはありません。通知をオンにしてください。デバッグの時間を節約できます。

ただし、変数が設定されていないことがわかっている場合もあります。エラーとして報告されないように、最初に変数が「設定」されていることを確認してください。これは、コードサンプルで読んでいるものです。

于 2012-12-31T05:20:51.483 に答える