Php 定义一个空变量?

Php 定义一个空变量?,php,string,Php,String,假设 $test = ''; if(empty($test)){ $test = "not found";} echo $test; 在上述情况下,答案将为“未找到” 但低于1,即使$test变量为空,但结果为空 $test = ' '; if(empty($test)){ $test = "not found";} echo $test; 如何在PHP中将这两个变量都视为空???如果(空(trim($test))… 更正: $test=修剪($test) if(空($test))…

假设

$test = '';

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

echo $test;
在上述情况下,答案将为“未找到”

但低于1,即使
$test
变量为空,但结果为空

$test = ' ';

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

echo $test;
如何在PHP中将这两个变量都视为空???

如果(空(trim($test))…

更正:

$test=修剪($test)

if(空($test))…


Trim删除字符串两侧的空白。

在检查值之前修剪该值

检查前进行修剪很重要,因为
empty
只检查变量,而不检查传入的值

$test = trim(' ');

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

echo $test;

创建您自己的函数以测试此功能:

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

除了empty方法已经提供的内容之外,它将把所有只包含空格的字符串视为空。

$test='
不是空的。从中的详细信息:

以下事项被认为是 空的:

  • “”(空字符串)
  • 0(0作为整数)
  • 0.0(0作为浮点数)
  • “0”(0作为字符串)
  • 空的
  • 假的
  • array()(空数组)
  • var$var;(已声明的变量,但类中没有值)
如果要测试
$test
是否仅为空白字符,请参阅以下问题:



我不知道为什么每个人都在这里推荐
empty
。然后您可以省去它,使用PHPs布尔上下文处理:

if (!trim($test)) {
但要实际检查是否存在任何字符串内容,请使用:

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

如果字符串的长度为0,则该字符串为空。带有单个空格字符的字符串的长度为1.-1,因为
empty
仅适用于变量,而不适用于表达式。PHP手册中明确提到了这种情况,它将不起作用。