我想根据条件更改分配的变量,我似乎可以让它正常工作。
$condition = false;
($condition !== false ? $array[1][$condition] : $array[1]) = 'Test';
在这个例子中,如果$ condition不为false,我想将字符串“Test”分配给$ array [1] [$ condition]。否则,将其分配给$ array [1]
我可以这样轻松地做到这一点:
if ($condition !== false) {
$array[1][$condition] = 'Test'; }
else {
$array[1] = 'Test'; }
但由于代码的性质,这可能会变得非常混乱,这就是为什么我希望它是一个内联条件语句。
感谢您的帮助!
答案 0 :(得分:1)
$condition = false;
$array[1][$condition] = ($condition !== false ? 'Test' : $array[1]);
答案 1 :(得分:0)
$condition !== false ? $array[1][$condition] = "Test" : $array[1] = "Test";
答案 2 :(得分:0)
The result of the ternary operator is not a reference,因此您无法将其用作作业的左侧。
您可能能够使用变量和引用,但这可能只会增加复杂性而不会带来任何实际好处。
这样的事情:
$a =& $array[1];
$b =& $array[1][$condition];
$var = ($condition !== false ? 'b' : 'a');
$$var = 'Test';