0

strlenが使われているのをよく見かけます。これら 2 つのテストは のすべての値に対して同等$strですか?

is_string($str) && 0 !== strlen($str)

is_string($str) && '' !== $str

4

4 に答える 4

3

はい、これら 2 つのステートメントは論理的に同等です。この猫の皮を剥ぐ私の好みの方法:

is_string($str) && !empty($str)

... (ため息empty('0')、PHP ...)ですが、これはおそらくさらに優れています:true

$str !== ''

以下も参照してください:文字列が空かどうかの確認およびIs there a difference between $str == '' and strlen($str) == 0 in PHP?

于 2011-12-02T22:58:27.027 に答える
1

文字列に対してstrlen()返さ0れることを除いて、それらはかなり似ています。したがって、がである場合、最初のテストの式は に評価され、2 番目のテストの は に評価されます。NULL$strNULL0 !== strlen($str)true'' !== $strfalse

于 2011-12-02T23:00:02.320 に答える
1

はい、同じです..

私は使うだろう:

is_string($str) && strlen($str) > 0
于 2011-12-02T23:01:37.437 に答える
-1

これを試して

strlen($str) > 0

!== は強い型で、0 に正しく一致しない場合があります。

于 2011-12-02T22:59:13.173 に答える