定义一个空变量?

时间:2011-05-09 17:25:28

标签: php string

假设

$test = '';

if(empty($test)){ $test = "not found";}

echo $test;

以上情况答案将“未找到”

但低于1,即使$test变量为空但结果也没有给出。

$test = ' ';

if(empty($test)){ $test = "not found";}

echo $test;

我们如何在PHP中将这两个变量视为空?

5 个答案:

答案 0 :(得分:6)

$test = ' '不是空的。来自documentation

中的详细信息
  

考虑以下事项   是空的:

     
      
  • “”(空字符串)
  •   
  • 0(0为整数)
  •   
  • 0.0(0作为浮动)
  •   
  • “0”(0作为字符串)
  •   
  • NULL
  •   
  • FALSE
  •   
  • array()(空数组)
  •   
  • var $ var; (声明的变量,但在类中没有值)
  •   

如果您想测试$test是否只是空格字符,请参阅以下问题:

If string only contains spaces?
How to check if there are only spaces in string in PHP?

答案 1 :(得分:5)

在检查之前修剪该值。

在检查之前修剪是很重要的,因为empty只检查变量而不是你传入的值。

$test = trim(' ');

if (empty($test)) { /* ... */ }

echo $test;

答案 2 :(得分:1)

你可以做if (empty(trim($test))) ...

CORRECTED:

$test = trim($test);

if (empty($test)) ...

修剪从字符串的两边删除空格。

答案 3 :(得分:1)

我不知道为什么每个人都在这里推荐empty。然后你可以把它留下来并使用PHP的布尔上下文处理:

if (!trim($test)) {

但要实际检查是否有任何字符串内容使用:

if (!strlen(trim($test))) {

答案 4 :(得分:0)

创建自己的函数来测试它:

function my_empty($str) {
  $str = trim($str);
  return empty($str);
}

除了已经提供的空方法之外,这将把仅包含空格的所有字符串视为空。

相关问题