私はphpパッケージを調べていて、いくつかの光を当てたい興味深いコード行を見つけました。for ループ パラメーターに式を渡す代わりに、2 つのセミコロンだけを記述しました。
for (;;) { // This is the line in question
$this->output .= $this->a;
$this->a = $this->get();
if ($this->a === $this->b) {
break;
}
if (ord($this->a) <= self::ORD_LF) {
throw new JSMinException('Unterminated string literal.');
}
if ($this->a === '\\') {
$this->output .= $this->a;
$this->a = $this->get();
}
}
通常、for ループにはセミコロンで区切られた 3 つの式が含まれていることを理解しています。したがって、これは明らかに、式を使用せずに for ループを実行しているだけであり、ブレーク (6 行目) に依存してループを終了しています。
私が知りたいのは、この方法は従来の方法よりもパフォーマンス上の利点がありますか? 私の見方では、これは次のように while ループとして簡単に書き直すことができたはずです。
while($this->a !== $this->b){
// Loop Contents
}