Есть тестовый код в учебных целях, крутится на xampp:
<html>
<?php
$i = 1;
print <<<PROGRAM
<html>
<head>
<title>Program</title>
</head>
<body>
print '<select name="people">;
while ($i < 10) {
print '<option>$i</option>';
$i++;
}
print '</select>';
</body>
</html>
PROGRAM;
?>
</html>
В браузере выводится только первое значение 1. При просмотре исходного кода через браузер, он выглядит следующим образом:
<html>
<script type="text/javascript" src="http://ff.kis.v2.scr.kaspersky-labs.com/FD126C42-EBFA-4E12-B309-BB3FDD723AC1/main.js?attr=Zt4V-HcipvBh_pPEXdKYCgw-eJkqbsFRLfJfbsuQlArJ5UuV0TJO00-62gpawCtC" charset="UTF-8"></script><html>
<head>
<title>Program</title>
</head>
<body>
print '<select name="people">;
while (1 < 10) {
print '<option>1</option>';
1++;
}
print '</select>';
</body>
</html></html>
Где ошибка и почему это происходит ?
Чтобы цикл выполнился нужно, чтобы он был в самом скрипте, а print выводит в результирующий файл, поэтому ваш цикл и не выполняется.
Как правильно отмечают в комментариях, внутри HEREDOC код не выполняется, только подстановка переменных.
Вот, например так, можно переработать программу. Но вообще лучше взять учебник по PHP и поработать с ним.
$i = 1;
echo <<<PROGRAM
<html>
<head>
<title>Program</title>
</head>
<body>
PROGRAM;
print '<select name="people">\n';
while ($i < 10) {
print '<option>$i</option>\n';
$i++;
}
print '</select>\n';
echo <<<PROGRAM
</body>
</html>
PROGRAM;
Спасибо большое за ответ! Я и занимаюсь изучением по книжке, но в ней видимо ошибка в этом примере. С вашим примером практически все заработало, за исключением того что в выпадающем списке не цифры 1, 2, 3, ...9, а 9 раз повторяется $i. Получается цикл работает, но значение не заполняется. Поправил вот так, заработало:
while ($i < 10) {
print <<<PROGRAM
print '<option>$i</option>';
PROGRAM;
$i++;
}
Большое спасибо что помогли!
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Нужно что бы к каждой записи в блоге, отображались комментарии, оставленные непосредственно для записи
Озадачен вопросом и не мог понять и найти ответВот как выглядит моя ссылка и все работает хорошо
Всем приветХотел бы узнать мнение опытных кодеров, почему такое поведение у метода filter