strlenが使われているのをよく見かけます。これら 2 つのテストは のすべての値に対して同等$str
ですか?
is_string($str) && 0 !== strlen($str)
is_string($str) && '' !== $str
はい、これら 2 つのステートメントは論理的に同等です。この猫の皮を剥ぐ私の好みの方法:
is_string($str) && !empty($str)
... (ため息empty('0')
、PHP ...)ですが、これはおそらくさらに優れています:true
$str !== ''
以下も参照してください:文字列が空かどうかの確認およびIs there a difference between $str == '' and strlen($str) == 0 in PHP?
文字列に対してstrlen()
返さ0
れることを除いて、それらはかなり似ています。したがって、がである場合、最初のテストの式は に評価され、2 番目のテストの は に評価されます。NULL
$str
NULL
0 !== strlen($str)
true
'' !== $str
false
はい、同じです..
私は使うだろう:
is_string($str) && strlen($str) > 0
これを試して
strlen($str) > 0
!== は強い型で、0 に正しく一致しない場合があります。