Prestashop 模块奇怪的问题

Prestashop module weird issue

我正在 prestashop 中开发自定义模块。因为我在这样的函数中获取了价值

$fname = !empty(Tools::getValue('fname')) ? Tools::getValue('fname') : '';

但是它显示的错误是这样的

Fatal error: Can't use function return value in write context

有人能告诉我为什么会出现这个错误吗?如何解决这个问题?

我得到了答案。应该是这样

Tools::getValue('fname') ? Tools::getValue('fname') : ' ';

我将在这里为来自 google 个结果的人解释。

  1. empty(someFunction()) 产生错误,因为

Note: Prior to PHP 5.5, empty() only supports variables; anything else will result in a parse error. In other words, the following will not work: empty(trim($name)). Instead, use trim($name) == false.

http://php.net/manual/en/function.empty.php

  1. 在 Prestashop 方法中 Tools::getValue() 可以使用默认值,

    public 静态函数 getValue($key, $default_value = false) {

因此您可以使用 Tools::getValue('fname', ''); 并且返回值将包含或 'fname' 的值或空字符串,在这种情况下。