Php $this->_Zend框架中的getParam和empty()
所以我提交了一个表单,我试图检查一个字段是否为空,我这样做:Php $this->_Zend框架中的getParam和empty(),php,zend-framework,Php,Zend Framework,所以我提交了一个表单,我试图检查一个字段是否为空,我这样做: if(empty($this->_getParam('my_field'))) 它不起作用,但如果我只使用$\u POST['my\u field] 致命错误:无法在..中的写入上下文中使用方法返回值 我应该如何使用$this->\u getParam才能工作?因为我猜在框架上使用$\u POST不是一个好的选择。这是您的问题:不能在写上下文中使用方法返回值 这里有一个很好的解释,为什么我们必须这样做: 要使用empty(),
if(empty($this->_getParam('my_field')))
它不起作用,但如果我只使用$\u POST['my\u field]
致命错误:无法在..中的写入上下文中使用方法返回值
我应该如何使用
$this->\u getParam
才能工作?因为我猜在框架上使用$\u POST
不是一个好的选择。这是您的问题:不能在写上下文中使用方法返回值
这里有一个很好的解释,为什么我们必须这样做:
要使用empty(),必须首先获取返回值
$field = $this->_getParam('my_field');
if(empty($field)){
//is empty
}
(更新:这不是PHP版本>=5.5的问题)空($This->_getParam('my_field'))可以正常工作。这是您的问题:无法在写上下文中使用方法返回值。 这里有一个很好的解释,为什么我们必须这样做: 要使用empty(),必须首先获取返回值
$field = $this->_getParam('my_field');
if(empty($field)){
//is empty
}
(更新:这不是PHP版本>=5.5的问题)空($This->_getParam('my_field'))就可以了。-likeisset
-不是一个真正的函数,而是一个语言构造。因此,只能将变量用作其唯一参数(没有表达式,没有函数结果)
但是,您可以使用临时变量:
$my_field = $this->_getParam('my_field');
if(empty($my_field))
....
-likeisset
-不是一个真正的函数,而是一个语言构造。因此,只能将变量用作其唯一参数(没有表达式,没有函数结果)
但是,您可以使用临时变量:
$my_field = $this->_getParam('my_field');
if(empty($my_field))
....
其他答案是正确的。一种主动方法是为对
\u getParam()
的调用提供默认值,例如null
。然后你可以打电话
is_null($this->_getParam('myfield',null))
这种方法可能更可取,因为Zend已经确定了该参数的空值。其他答案是正确的。一种主动方法是为对
\u getParam()
的调用提供默认值,例如null
。然后你可以打电话
is_null($this->_getParam('myfield',null))
此方法可能更可取,因为Zend已经确定了该参数的空值。您可以使用临时变量
$field = $this->_getParam('my_field');
if(empty($field)){
//you code here
}
可以使用临时变量
$field = $this->_getParam('my_field');
if(empty($field)){
//you code here
}