PHP通过简单的代码输出奇怪的输出

时间:2013-06-16 12:29:44

标签: php

我有这个代码,它在输出中给出了“aababc”我不知道为什么会这样。

<?php
    $str = ‘abcdefghijklmnop’;
    $fp = fopen(“output.txt”, ‘w’);
    for($i=0; $i< 4; $i++) {
    fwrite($fp, $str, $i);
    }
    ?>

任何大师对此有任何想法。

谢谢

3 个答案:

答案 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)

您需要从此

更改fwrite
fwrite($fp, $str, $i);

到此:

fwrite($fp, substr($str, $i, 1));

获得预期结果'abc'

相关问题