爲什麼不能正常工作?三元運算符不能在PHP中使用引用變量
$a = 'FOO';
$foo = $a ? &$a : 'whatever'; // <- error here
echo $foo;
我得到一個分析錯誤:
爲什麼不能正常工作?三元運算符不能在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