假设
$test = '';
if(empty($test)){ $test = "not found";}
echo $test;
以上情况答案将“未找到”
但低于1,即使$test
变量为空但结果也没有给出。
$test = ' ';
if(empty($test)){ $test = "not found";}
echo $test;
我们如何在PHP中将这两个变量视为空?
答案 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);
}
除了已经提供的空方法之外,这将把仅包含空格的所有字符串视为空。