1

最近出くわした興味深い質問があります。

 if($somestring != "" && $somestring > 0){
  // do something.
 }

私の質問は、これら 2 つのチェックは同じことですか? INT に変換された文字列は、PHP で常に 0 よりも大きくなりませんか? または、文字列を 0 に評価できますか?

4

3 に答える 3

2

-1 int に直接評価される文字列 "-1" が存在する可能性があります

あなたの条件について-最初に空でないかどうかを確認してください-その場合、0に評価されます。作者はphpにそれをさせたくないので、値を必要とするようです

于 2013-07-14T19:18:57.190 に答える
1

まず、文字列は「空」になる可能性があるため、その中には何もありません。何も設定されていない場合は整数、デフォルトは 0 に設定されています

なので内訳は

if ($somestring != "") // 1 - check to see if the string is not empty
if ($somestring > 0)   // 2 - Check to see of the non-empty string has a value greater than 0

そのため、作者はゆるいタイプのスクリプトから保護しようとしています。

お役に立てれば :)

于 2013-07-14T19:23:56.213 に答える