Вопрос действительно в названии - у меня есть цикл 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