【发布时间】:2021-07-17 09:41:18
【问题描述】:
我有两个数组,我想根据特定条件附加到一个或另一个。问题是 array_push 函数应该在 foreach 循环内的 switch case 的 case 内调用,因此使用 if-else 意味着要多出 20 行代码。我以为我可以使用三元运算符来做到这一点,但由于某种原因它不起作用。
$arr1 = ['1', '2'];
$arr2 = ['a', 'b'];
$condition = False;
array_push($condition ? $arr1 : $arr2, 'new');
产生此错误:
array_push(): Argument #1 ($array) cannot be passed by reference
我认为 $arr1 和 $arr2 是引用,因此您应该能够传递它们,但有些事情不是应该的。至少它在 C 中是这样的。
【问题讨论】:
-
几分钟后,我想我可以这样做
$condition ? array_push($arr1, 'new') : array_push($arr2, 'new'),但我仍然想知道为什么我的第一个解决方案不起作用。
标签: php