检查长度至少为1个字符的字符串

时间:2011-12-02 22:55:53

标签: php string strlen

我经常看到使用strlen。这两个测试是否等同于$str的所有值?

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

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

4 个答案:

答案 0 :(得分:3)

是的,这两个陈述在逻辑上是等价的。我喜欢给这只猫上皮的方法:

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

...虽然empty('0')true叹息,PHP ...),所以这可能更好:

$str !== ''

另请参阅:Checking if the string is emptyIs there a difference between $str == '' and strlen($str) == 0 in PHP?

答案 1 :(得分:1)

他们非常接近,只有strlen()会为0字符串返回NULL,所以如果$strNULL,{{1}第一次测试中的表达式将评估为0 !== strlen($str),而第二次测试中的true将评估为'' !== $str

答案 2 :(得分:1)

是的,他们是一样的..

我会用:

is_string($str) && strlen($str) > 0

答案 3 :(得分:-1)

试试这个

strlen($str) > 0

!==是一种强类型,可能与0不匹配。