我正在尝试让我的for循环更短,请参阅之前和之后的,但我收到此错误Parse error: syntax error, unexpected 'U'
是否可以这样使用它?
后的 <?php
for ($i=9; $i < 22; $i++) {
//zet voor alle dagen van de week de gehuurde uuren in een array
$D1U[$i] = $resourceUsage['data']['usage']['110556']['2018'][5][$days[0]][$i][15];
$D2U[$i] = $resourceUsage['data']['usage']['110556']['2018'][5][$days[1]][$i][15];
$D3U[$i] = $resourceUsage['data']['usage']['110556']['2018'][5][$days[2]][$i][15];
$D4U[$i] = $resourceUsage['data']['usage']['110556']['2018'][5][$days[3]][$i][15];
$D5U[$i] = $resourceUsage['data']['usage']['110556']['2018'][5][$days[4]][$i][15];
$D6U[$i] = $resourceUsage['data']['usage']['110556']['2018'][5][$days[5]][$i][15];
$D7U[$i] = $resourceUsage['data']['usage']['110556']['2018'][5][$days[6]][$i][15];
}
?>
<?php
for ($d=1; $d < 8; $d++) {
$D[$d]U[$i] = $resourceUsage['data']['usage']['110556']['2018'][5][$days[0]][$i][15];
}
?>
答案 0 :(得分:3)
您不能使用方括号来解决PHP中的"variable variables"问题。你需要使用连接和花括号来构造一个字符串,例如
$d = 1; $i = 2;
${'D' . $d . 'U' . $i} = 'foo';
echo $D1U2; // foo
通常情况下,带有数字的变量通常是一个不好的标志,因为访问它们所需的语法(如上所述)并不完全相同。它们本身也不具备可扩展性。如果您能够稍微重构一下,我建议使用数组,例如
$DU = [];
...
for ($d=1; $d < 8; $d++) {
$DU[$d][$i] = $resourceUsage['data']['usage']['110556']['2018'][5][$days[0]][$i][15];
...
答案 1 :(得分:0)
使用变量变量。这是链接http://php.net/manual/en/language.variables.variable.php。也请参考使用此方法时要注意的注意事项
for ($d=1; $d < 8; $d++) {
${'D'.$d.'U'}[$i] = $resourceUsage['data']['usage']['110556']['2018'][5][$days[0]][$i][15];
}