【发布时间】:2021-01-14 22:23:27
【问题描述】:
我偶然发现了一个代码示例中的语法,这是我以前在 PHP 中的 for 循环中从未见过的语法。
这是做什么的? 我为什么要使用它?
for(;$i<$max;){
$i++;
//code..
}
我发现它不一样
for($i=0;$i<$max;$i++) {
//code...
}
我不明白上面两个例子的区别。
如果更具体地说明我的想法。 如果我们有这段代码(取自adventofcode的解决方案):https://www.reddit.com/r/adventofcode/comments/kdf85p/2020_day_15_solutions/
<?php
$cap = 2020;
$bits = [5,1,9,18,13,8,0];
$i=0;
$time = [];
foreach($bits as $bit) {
$i++;
$time[$bit] = $i;
$say = 0;
}
for(;$i<$cap-1;){
$i++;
if(isset($time[$say])) {
$last = $time[$say];
}
else {
$last = $i;
}
$time[$say] = $i;
$say = $i - $last;
}
echo $say;
?>
并将其与以下内容进行比较:
<?php
$cap = 2020;
$bits = [5,1,9,18,13,8,0];
$i=0;
$time = [];
foreach($bits as $bit) {
$i++;
$time[$bit] = $i;
$say = 0;
}
for($i=0;$i<$cap-1;$i++){
if(isset($time[$say])) {
$last = $time[$say];
}
else {
$last = $i;
}
$time[$say] = $i;
$say = $i - $last;
}
echo $say;
?>
我在 $say.(376 in first example and 38 in last example) 中得到了不同的结果。
为什么我会得到不同的值?
【问题讨论】: