1

这段代码:

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

返回此错误:

致命错误:无法在...的写入上下文中使用函数返回值

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

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

4

5 回答 5

3

您不能在isset,empty语句中使用函数。只需将修剪的结果分配给一个变量。

$r = trim($_POST['blop']);

if(!empty($r))....

编辑:PHP 5.5 之前

于 2013-05-02T14:42:45.387 回答
2
if (trim($_POST['post']) !== "") {
    // this is the same
}
于 2013-05-02T14:47:23.877 回答
2
if (trim($_POST['post'])) {

在功能上等同于您似乎正在尝试做的事情。没有必要打电话!empty

于 2013-05-02T14:42:20.963 回答
1

文档中,它实际上专门解释了这个问题,然后为您提供了一个替代解决方案。您可以使用

trim($name) == false.
于 2013-05-02T14:42:42.283 回答
0

在 PHP 中,函数isset()empty()测试变量

这意味着这

if(empty("someText")) { ... }

或这个

if(isset(somefunction(args))) { ... }

没有任何意义,因为总是定义函数的结果等

这些函数用于告诉变量是否已定义,因此参数必须是变量或带索引的数组,然后它检查索引(也适用于对象),例如

if(!empty($_POST["mydata"])) {
    //do something
} else {
    echo "Wrong input";
}
于 2013-05-02T14:52:47.237 回答