在写上下文中不能使用函数返回值

时间:2014-04-09 15:55:23

标签: php codeigniter

使用此功能时出现错误消息:

$estadoSelect = empty(set_value('estado'))? 23 : set_value('estado');

我收到了这个错误

  

中的写入上下文中不能使用函数返回值

为什么?

由于

2 个答案:

答案 0 :(得分:2)

在PHP 5.5之前,empty需要一个变量。如the docs中所述,传递函数的返回值将导致解析错误:

  

注意:

     

在PHP 5.5之前,empty()仅支持变量;其他任何东西都会导致解析错误。换句话说,以下操作无效:empty(trim($name))

     

相反,use trim($name) == false

您必须将返回的值存储在变量中。

$value = set_value('estado');
$estadoSelect = empty($value) ? 23 : set_value('estado');

您可能首先不想要empty。您应该检查您的变量是否为“虚假”并通过||提供默认值:

$estadoSelect = set_value('estado') || 23;

答案 1 :(得分:1)

如果你运行的PHP版本小于5.5,那么“empty”函数只需要一个变量,它不支持表达式。

请参阅:http://au2.php.net/empty

来自php.net:

  

注意:

     

在PHP 5.5之前,empty()仅支持变量;别的什么都会   导致解析错误。换句话说,以下内容不起作用:

     

空(修整($名))。相反,使用trim($ name)== false。