Вроде же ошибка

0

Есть такой код:

<?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. Было бы хорошо сделать поиск по вопросам, а то искать похожий вопрос, просматривая каждый пост - долго и утомительно :) 

html
php

2 ответов

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

1

Почитал. Спасибо за ответ, теперь на будущее буду учитывать эти особенности синтаксиса php.

Sign up or Log in to write an answer