如何通过条件更改分配的变量?

时间:2011-06-07 18:51:52

标签: php variables conditional

我想根据条件更改分配的变量,我似乎可以让它正常工作。

$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'; }

但由于代码的性质,这可能会变得非常混乱,这就是为什么我希望它是一个内联条件语句。

感谢您的帮助!

3 个答案:

答案 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';