0

你可以在“数组”函数中有一个“if”语句吗?

 $my_array = array(
    'foo' => $foo,
    'bar' => 'bar',
    'lorem' => $lorem,
    if($z == 'z'){ 'ipsum' => $ipsum }
);

我的问题当然与第 5 行有关,即数组中的第 4 项。它似乎不想工作,有没有更好的方法呢?

4

4 回答 4

5

你不能那样做。只需在if后面添加语句。

$my_array = array(
    'foo' => $foo,
    'bar' => 'bar',
    'lorem' => $lorem
);

if($z == 'z'){
    $my_array['ipsum'] = $ipsum;
}
于 2012-08-15T21:38:26.740 回答
1

您可以使用三元运算符:

$my_array = array(
    'foo' => $foo,
    'bar' => 'bar',
    'lorem' => $lorem,
    'ipsum' => ($z == 'z') ? $ipsum : null
);

这会给你一个数组元素等于null如果比较是false

于 2012-08-15T21:40:15.960 回答
0

我认为您不能将 if 语句放在数组初始化中,但您可以执行以下操作:

$my_array = array(
    'foo' => $foo,
    'bar' => 'bar',
    'lorem' => $lorem,
);
if($z == 'z'){ $my_array['ipsum'] = $ipsum; }
于 2012-08-15T21:38:29.973 回答
0

您可以使用 if 语句的简短版本来做到这一点:

$my_array = array(
    'foo' => $foo,
    'bar' => 'bar',
    'lorem' => $lorem,
    'ipsum' => $z == 'z' ? $ipsum : null
);
于 2012-08-15T21:42:09.187 回答