此代码:
if(!empty(trim($_POST['post']))){ }
返回此错误:
致命错误:无法在...
中的写入上下文中使用函数返回值
如何解决并避免进行2次检查(修剪然后清空)?
我想检查POST是否只是一个空格。
答案 0 :(得分:3)
您无法在isset
,empty
语句中使用函数。只需将trim的结果赋给变量。
$r = trim($_POST['blop']);
if(!empty($r))....
编辑:PHP 5.5之前
答案 1 :(得分:2)
if (trim($_POST['post'])) {
功能上与您尝试执行的操作相同。无需拨打!empty
答案 2 :(得分:2)
if (trim($_POST['post']) !== "") {
// this is the same
}
答案 3 :(得分:1)
在documentation中,它实际上具体解释了这个问题,然后为您提供了另一种解决方案。你可以使用
trim($name) == false.
答案 4 :(得分:0)
在PHP中,函数isset()
和empty()
属于测试变量。
这意味着这个
if(empty("someText")) { ... }
或者
if(isset(somefunction(args))) { ... }
没有任何意义,因为函数的结果总是被定义,e.t.c。
这些函数用于告诉变量是否已定义,因此参数必须是变量或带索引的数组,然后检查索引(也适用于对象),如
if(!empty($_POST["mydata"])) {
//do something
} else {
echo "Wrong input";
}