皆さん。今日私はかなり理解していないPHPのwhile
ループの例を見ました。サンプルPHPを理解するのに役立つ必要があります。
// Open XML file
$fp=fopen("note.xml","r");
// Read data
while ($data=fread($fp,4096)) { // Line about which I have questions
xml_parse($parser,$data,feof($fp)) or
die (sprintf("XML Error: %s at line %d",
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}
while
ループ括弧内の式$data=fread($fp,4096)
は全く変化していないようです。 1つの代入文です。このループはどのように終了するのですか? 解析の完了時に関数xml_parse($parser,$data,feof($fp))
が終了することがありますが、ループがwhile
ループのテスト条件にどのように影響するかはわかりません。私は、XMLファイルの解析が無限に繰り返されると感じています。ループのテスト条件として代入式がある場合に
はまた、私たちは本当にちょうど割り当て利回りTRUE
またはFALSE
のRIGHT側ならばループを終了するか否かを判断するために参照するために探していますか?私はこれに疑問を抱いています。$data
は一度割り当てられてから常にTRUE
を返すので、この例では無限ループが生成されるためです。
おかげ
freadがファイルの最後に到達すると、nullが$ dataに返され、falseになるのでwhileループは停止します – SIDU