为什么这个表达式返回错误,我该如何解决?

时间:2013-05-02 14:39:43

标签: php

此代码:

if(!empty(trim($_POST['post']))){ }

返回此错误:

  

致命错误:无法在...

中的写入上下文中使用函数返回值

如何解决并避免进行2次检查(修剪然后清空)?

我想检查POST是否只是一个空格。

5 个答案:

答案 0 :(得分:3)

您无法在issetempty语句中使用函数。只需将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";
}