Вроде же ошибка
Есть такой код:
<?php
define("MYNAME", "Колупаев Сергей");
$age = 31;
$city = "Таллинн";
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<b>Меня зовут <?php echo MYNAME ?>. Мне <?php echo $age; ?> год и я живу в городе <?php echo $city; ?>.</b>
</body>
</html>
Вопрос: почему, если убрать ; в коде <?php echo $age ?> и <?php echo $city ?>, то браузер не выдаёт никакой ошибки? Я же не поставил ; , то есть допустил ошибку в синтаксисе.
P.S. Было бы хорошо сделать поиск по вопросам, а то искать похожий вопрос, просматривая каждый пост - долго и утомительно :)
2 ответов
Вопрос: почему, если убрать ; в коде <?php echo $age ?> и <?php echo $city ?>, то браузер не выдаёт никакой ошибки?
Потому что необязательно ставить точку с запятой, если в php коде только одна запись или закрывающий тэг, в данном случае:
<?php echo $age ?>
Из официальной документации PHP:
Как в C или Perl, PHP требует окончания инструкций точкой запятой в конце каждой инструкции. Закрывающий тег блока PHP-кода автоматически применяет точку с запятой; т.е. нет необходимости ставить точку с запятой в конце последней строки блока с PHP-кодом. Закрывающий тег блока "поглотит" немедленно следующий за ним переход на новую строку, если таковой будет обнаружен.
http://php.net/manual/ru/language.basic-syntax.instruction-separation.php
Почитал. Спасибо за ответ, теперь на будущее буду учитывать эти особенности синтаксиса php.