if(!empty(trim($_POST['post']))){ }
这个错误:
Fatal error: Can't use function return value in write context in ...
如何解决,并避免做2个检查(修剪,然后空)?
我想检查POST是否不仅仅是一个空格。
if(!empty(trim($_POST['post']))){ }
这个错误:
Fatal error: Can't use function return value in write context in ...
如何解决,并避免做2个检查(修剪,然后空)?
我想检查POST是否不仅仅是一个空格。
在documentation它实际上具体解释了这个问题,然后给你一个替代解决方案。您可以使用
trim($name) == false.
很明显,为什么PHP文档甚至建议这种解决方案超越了我。为什么促进不必要的强制类型? (我不是说它慢,但这是问题的原理!) – cmbuckley 2013-05-02 23:04:27
我不确定,但它是最短的解决方案。 – christopher 2013-05-03 09:18:47
'!trim($ name)'更短:-)就此而言,trim($ name)==='''! – cmbuckley 2013-05-11 13:05:46
if (trim($_POST['post'])) {
功能上与您似乎试图做的相同。没有必要拨打!empty
你不能使用的功能里面isset
,empty
语句。只需将修剪结果分配给一个变量即可。
$r = trim($_POST['blop']);
if(!empty($r))....
编辑:在此之前PHP 5.5
if (trim($_POST['post']) !== "") {
// this is the same
}
在PHP中,函数isset()
和empty()
是彪测试变量。
这意味着这个
if(empty("someText")) { ... }
或该
if(isset(somefunction(args))) { ... }
不作任何SENCE,因为函数的结果总是被定义,e.t.c.
这些功能用于告诉阉一个变量被定义或没有,所以参数必须我一个变量,或数组索引,那么它会检查指数(工作在对象上也是如此),像
if(!empty($_POST["mydata"])) {
//do something
} else {
echo "Wrong input";
}
你有没有实际上阅读[文档页面](http://php.net/manual/en/function.empty.php)?它清楚地表明,只有变量在PHP中使用'empty()'<5.5 – 2013-05-02 14:41:45
请参阅此答案:http://stackoverflow.com/a/2173318/561731 – Neal 2013-05-02 14:42:19
我想检查POST是否不仅仅是一个空格。 – xRobot 2013-05-02 14:43:55