我有这个代码,它在输出中给出了“aababc”我不知道为什么会这样。
<?php
$str = ‘abcdefghijklmnop’;
$fp = fopen(“output.txt”, ‘w’);
for($i=0; $i< 4; $i++) {
fwrite($fp, $str, $i);
}
?>
任何大师对此有任何想法。
谢谢
答案 0 :(得分:4)
以下 for -loop如何运作:
// i = 0;
fwrite($fp, $str, 0); // writes nothing
// i = 1;
fwrite($fp, $str, 1); // writes a
// i = 2;
fwrite($fp, $str, 2); // writes ab
// i = 3;
fwrite($fp, $str, 3); // writes abc
// total write 'aababc'
更新:并实现目标:
for ($i = 0; $i < 4; $i++) {
fwrite($fp, substr($str, $i, 1));
}
// will write 'abcd'
我不能停止)或没有循环:
// will take 3 first symbols from string and write to file
fwrite($fp, substr($str, 0, 3));
// will write 3 symbols from string to file
fwrite($fp, $str, 3);
答案 1 :(得分:1)
行为正确。
i = 0 str =''
i = 1 str ='a'
i = 2 str ='ab'
i = 3 str ='abc'
所以每当$ str中的内容为$ i时,它就会写到结尾。
答案 2 :(得分:0)
您需要从此
更改fwritefwrite($fp, $str, $i);
到此:
fwrite($fp, substr($str, $i, 1));
获得预期结果'abc'