0

再会。

我需要检查 42 个名字,但它很长:

通常我使用下一个代码:

$info_1 = (isset($info['1'])) ? $info['1'] : 0;
$info_2 = (isset($info['2'])) ? $info['2'] : 0;

$info_42 = (isset($info['42'])) ? $info['42'] : 0;

我可以得到动态名称吗?

前任。我想使用代码:

for($i=0;$i<43;$i++){
$info_$i = (isset($info[$i])) ? $info[$i] : 0;
}

如何正确$i添加$info

这可能吗?

4

4 回答 4

4
for($i=0;$i<43;$i++){
    $name = 'info_'.$i;
    $$name = (isset($info[$i])) ? $info[$i] : 0;
}
于 2013-10-09T11:21:51.743 回答
1

更好地使用数组:

for($i=0;$i<43;$i++){
    $info[$i] = (isset($info[$i])) ? $info[$i] : 0;
}
于 2013-10-09T11:23:44.250 回答
0

你可以这样做

for($i = 0; $i<43; $i++) {
  $var_name = "info_{$i}";
  $$var_name = isset($info[$i])) ? $info[$i] : 0;
}

但是,如果您真的需要这种东西,那您就大错特错了,最好将这一长串变量转换为数组;

于 2013-10-09T11:24:30.460 回答
0

只是另一种选择:

for($i=0;$i<43;$i++){

  ${"info_$i"} = (isset(${"info_$i"}) ? ${"info_$i"} : 0;
}
于 2013-10-09T11:29:19.083 回答