为什么这个 foreach 循环迭代两次?

托比史密斯

问题确实在标题中 - 我有这个foreach循环,它似乎在我的数组上迭代两次。

ob_start();

$array = str_split(strtolower($_GET['text']));

foreach ($array as $char) {
    error_log($_GET['text'] . ', ' . sizeof($array) . ', ' . $char);
}

$result = ob_get_contents(); 

我发现上面的代码在传入 URL 时会生成以下日志,如下所示: index.php?text=Hi

[22-Oct-2018 20:05:37 Europe/London] Hi, 2, h
[22-Oct-2018 20:05:37 Europe/London] Hi, 2, i
[22-Oct-2018 20:05:37 Europe/London] Hi, 2, h
[22-Oct-2018 20:05:37 Europe/London] Hi, 2, i

调试显示数组只有 2 长,所以我真的不确定它可能是什么。谢谢!


经过更多的调试,我发现了以下内容:

if (!isset($_GET['text'])) {
    header('HTTP/1.0 404 Not Found');
    die();
}

echo uniqid() . '</br>';

//ob_start();

$total = 0;
$array = str_split(strtolower($_GET['text']));

foreach ($array as $char) {
    echo $_GET['text'] . ', ' . sizeof($array) . ', ' . $char . '</br>';
}

//$result = ob_get_contents();

echo $result;

产生这个:

5bce311d3d6bd
Hi, 2, h
Hi, 2, i

但是取消注释两条注释掉的行,给了我这个:

5bce313b9f29d
Hi, 2, h
Hi, 2, i
Hi, 2, h
Hi, 2, i
托比史密斯

我想我可能需要更多地了解ob_...功能?

以下代码似乎是一致且可靠的:

if (!isset($_GET['text'])) {
    header('HTTP/1.0 404 Not Found');
    die();
}

echo uniqid() . '</br>';

ob_start();

$total = 0;
$array = str_split(strtolower($_GET['text']));

foreach ($array as $char) {
    echo $_GET['text'] . ', ' . sizeof($array) . ', ' . $char . '</br>';
}

ob_flush();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的循环只迭代两次?

来自分类Dev

ForEach循环两次而不是一次迭代-Powershell

来自分类Dev

Foreach 在一次迭代中重复两次

来自分类Dev

快递:为什么这个GET请求执行两次?

来自分类Dev

为什么这个整数不增加两次?

来自分类Dev

为什么这个构造函数被调用两次?

来自分类Dev

为什么这个用于生成链接的 foreach 循环不起作用?

来自分类Dev

为什么这个 foreach 不会在 PHP 数组中循环?

来自分类Dev

为什么这个bash for循环只迭代一次?

来自分类Dev

为什么我必须按两次Enter键才能执行Foreach-Object Cmdlet?

来自分类Dev

为什么Enumerable.Range迭代两次?

来自分类Dev

为什么Enumerable.Range会迭代两次?

来自分类Dev

JavaScript:为什么要在循环中进行两次迭代以删除 DOM 中的所有 iframe 元素

来自分类Dev

JSON foreach 循环将数据写入文件两次

来自分类Dev

为什么我的程序循环两次?

来自分类Dev

C-为什么此循环运行两次?

来自分类Dev

为什么for循环只运行两次

来自分类Dev

为什么这个 addEventListener('click', function) 需要两次点击而不是一次点击?

来自分类Dev

为什么Array(n).forEach不循环n次?

来自分类Dev

为什么我得到这个结果(在退出之前,同一线程进入两次)?

来自分类Dev

为什么我的代码连续打印两次?我不明白这个问题

来自分类Dev

我不知道为什么这个方法被调用两次

来自分类Dev

为什么 Codeigniter 的 Query Builder 两次返回这个 MySQL 查询错误?

来自分类Dev

为什么这个 Android Instrumentation Test 两次调用 onCreate 活动?

来自分类Dev

为什么这个 response.end(callback) 被调用两次?

来自分类Dev

为什么这个while循环进入无限状态而不是在3次迭代后停止?

来自分类Dev

为什么Swift中的过滤器会对集合进行两次迭代?

来自分类Dev

为什么我不能对相同的数据进行两次迭代?

来自分类Dev

为什么Datomic在迭代时连续两次产生相同的临时ID?

Related 相关文章

  1. 1

    为什么我的循环只迭代两次?

  2. 2

    ForEach循环两次而不是一次迭代-Powershell

  3. 3

    Foreach 在一次迭代中重复两次

  4. 4

    快递:为什么这个GET请求执行两次?

  5. 5

    为什么这个整数不增加两次?

  6. 6

    为什么这个构造函数被调用两次?

  7. 7

    为什么这个用于生成链接的 foreach 循环不起作用?

  8. 8

    为什么这个 foreach 不会在 PHP 数组中循环?

  9. 9

    为什么这个bash for循环只迭代一次?

  10. 10

    为什么我必须按两次Enter键才能执行Foreach-Object Cmdlet?

  11. 11

    为什么Enumerable.Range迭代两次?

  12. 12

    为什么Enumerable.Range会迭代两次?

  13. 13

    JavaScript:为什么要在循环中进行两次迭代以删除 DOM 中的所有 iframe 元素

  14. 14

    JSON foreach 循环将数据写入文件两次

  15. 15

    为什么我的程序循环两次?

  16. 16

    C-为什么此循环运行两次?

  17. 17

    为什么for循环只运行两次

  18. 18

    为什么这个 addEventListener('click', function) 需要两次点击而不是一次点击?

  19. 19

    为什么Array(n).forEach不循环n次?

  20. 20

    为什么我得到这个结果(在退出之前,同一线程进入两次)?

  21. 21

    为什么我的代码连续打印两次?我不明白这个问题

  22. 22

    我不知道为什么这个方法被调用两次

  23. 23

    为什么 Codeigniter 的 Query Builder 两次返回这个 MySQL 查询错误?

  24. 24

    为什么这个 Android Instrumentation Test 两次调用 onCreate 活动?

  25. 25

    为什么这个 response.end(callback) 被调用两次?

  26. 26

    为什么这个while循环进入无限状态而不是在3次迭代后停止?

  27. 27

    为什么Swift中的过滤器会对集合进行两次迭代?

  28. 28

    为什么我不能对相同的数据进行两次迭代?

  29. 29

    为什么Datomic在迭代时连续两次产生相同的临时ID?

热门标签

归档