我有这个代码行....
define('CSV_TEXTSIGN', '');
$var = ( empty( trim( CSV_TEXTSIGN ) ) ? '"' : CSV_TEXTSIGN );
这会导致错误
Fatal error: Can't use function return value in write context in... line XX
但只有有效的功能......
bool empty ( mixed $var )
string trim ( string $str [, string $charlist ] )
我试图在define中切换“with”并使用vars而不是常量
我是瞎子吗? 谁能解释我哪里出错?答案 0 :(得分:3)
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.
所以你的代码可能如下:
$var = (!trim(CSV_TEXTSIGN) ? '"' : CSV_TEXTSIGN );
或者:
$trimed = trim(CSV_TEXTSIGN);
$var = empty($trimed) ? '"' : CSV_TEXTSIGN;
答案 1 :(得分:2)
在PHP 5.5之前,empty()仅支持变量;其他任何东西都会导致解析错误。换句话说,以下将不起作用:empty(trim($ name))。相反,使用trim($ name)== false。
答案 2 :(得分:1)
空实际上并不是一个功能 - 它是一种语言结构(类似于回声)。因此,PHP以不同的方式解析它。 Empty()只接受变量作为参数。阅读有关语言结构的更多信息here.
所以,回答你的问题,做一下这样的事情:
define('CSV_TEXTSIGN', '"');
$trimmedVal = trim( CSV_TEXTSIGN );
$var = ( empty( $trimmedVal ) ? '"' : CSV_TEXTSIGN );