我正在prestashop中开发一个自定义模块。在那里我已经在像这样的函数中取得了价值
$fname = !empty(Tools::getValue('fname')) ? Tools::getValue('fname') : '';
但它显示错误
Fatal error: Can't use function return value in write context
有人可以告诉我为什么错误在这里?如何解决这个问题?
答案 0 :(得分:0)
我得到了答案。它应该是这样的
Tools::getValue('fname') ? Tools::getValue('fname') : ' ';
答案 1 :(得分:0)
我将在这里为谷歌搜索结果中的某人解释。
empty(someFunction())
会产生错误,因为注意: 在PHP 5.5之前,empty()仅支持变量;其他任何东西都会导致解析错误。换句话说,以下将不起作用:empty(trim($ name))。相反,使用trim($ name)== false。
http://php.net/manual/en/function.empty.php
在Prestashop方法中,Tools::getValue()
可以使用默认值
public static function getValue($ key,$ default_value = false) {
所以你可以使用Tools::getValue('fname', '');
,并且在这种情况下,返回的值将包含'fname'或空字符串的值。