{strlen($ var)== 0}和{empty($ var)}之间有什么区别吗?

时间:2009-08-23 11:33:34

标签: php post html-form

考虑到变量只能从HTML表单中获取字符串(input-text,textarea)。

3 个答案:

答案 0 :(得分:3)

是的,strlen($str)==0empty($str)之间存在差异。如果值为"0",则empty会返回 true 。请参阅PHP type comparison tables

答案 1 :(得分:1)

$var = 0;

strlen( $var ); // 1, coerced to true

empty($var) // true, it's considered "empty", these are the empty ones:
  • “”(空字符串)
  • 0(0为整数)
  • “0”(0作为字符串)
  • NULL
  • FALSE
  • array()(空数组)
  • var $ var; (声明的变量,但在类中没有值)

答案 2 :(得分:1)

以下是我发现的一些说明:
empty(),需要一个变量,只需要一个变量,所以我认为它在处理从魔法 __ get()获取的对象值时会出现问题方法。