最近出くわした興味深い質問があります。
if($somestring != "" && $somestring > 0){
// do something.
}
私の質問は、これら 2 つのチェックは同じことですか? INT に変換された文字列は、PHP で常に 0 よりも大きくなりませんか? または、文字列を 0 に評価できますか?
-1 int に直接評価される文字列 "-1" が存在する可能性があります
あなたの条件について-最初に空でないかどうかを確認してください-その場合、0に評価されます。作者はphpにそれをさせたくないので、値を必要とするようです
まず、文字列は「空」になる可能性があるため、その中には何もありません。何も設定されていない場合は整数、デフォルトは 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
そのため、作者はゆるいタイプのスクリプトから保護しようとしています。
お役に立てれば :)