三元运算符不能在PHP中使用引用变量
问题描述:
为什么不能正常工作?三元运算符不能在PHP中使用引用变量
$a = 'FOO';
$foo = $a ? &$a : 'whatever'; // <- error here
echo $foo;
我得到一个分析错误:
答
虽然您标记了您的问题if-statement,那不是if语句,但它是一个三元条件表达式。我已经相应地重新签名了。
现在,它不起作用的原因是因为通过引用分配不同于在PHP中分配正常值表达式。您不能以与在功能中不能执行return &$foo;
相同的方式使用?:
运算符的引用。请参阅PHP引用这些手册页了解更多:
如果使用一个实际的if语句,它会工作:
if ($a)
$foo = &$a;
else
$foo = 'whatever';
但是,为什么你'想要使用像这样的引用超出了我(除非这是PHP 4,即使这样你就不应该再使用PHP 4了)。
答
试试这个:
$a ? $foo = &$a : $foo = 'whatever';
'&somefunction()'? – Ryan 2011-05-09 01:44:11
而解析错误是...? – ceejayoz 2011-05-09 01:44:36
这不是你如何使用引用。你需要发布更多的代码给我们一些上下文。 – 2011-05-09 01:44:54