Инструкции и комментарии
В прошлом уроке программа печатала строки командой echo. Вернёмся к карточке с рецептом: каждый шаг на ней заканчивается точкой, чтобы повар видел, где кончается один шаг и начинается следующий. А на полях автор оставляет заметки для себя, и повар их не выполняет.
В программе на PHP есть и то и другое. Шаги разделяет точка с запятой, а заметки для людей называются комментариями. Давайте посмотрим, как PHP понимает, где кончается одна команда.
Инструкции и точка с запятой
Каждая команда программы — это инструкция, например echo "Hello\n";. PHP узнаёт конец инструкции по точке с запятой, а не по концу строки.
Поэтому одна инструкция может занять несколько строк:
<?php
echo 'One statement ',
'on three lines',
"\n"; // One statement on three linesТекст здесь взят в одинарные кавычки: 'on three lines' печатается так же, как "on three lines". Разберём, как PHP читает этот пример:
- Он начинает инструкцию со слова
echoи читает дальше, через переводы строк. - Запятые после
'One statement 'и'on three lines'говорят, что значения ещё не кончились. - Точка с запятой после
"\n"завершает инструкцию, иechoпечатает всё одной строкой.
Две инструкции можно записать и в одну строку: echo 'a'; echo 'b'; напечатает ab. PHP такую запись поймёт, но так не пишут: код труднее читать.
Здесь картинка с рецептом перестаёт работать. Повар поймёт шаг и без точки в конце, а PHP без точки с запятой не запустит файл вовсе.
echo с несколькими значениями
echo печатает несколько значений подряд, если перечислить их через запятую:
<?php
echo 'Hello, ', 'world', "\n"; // Hello, world
echo '2 + 3 = ', 2 + 3, "\n"; // 2 + 3 = 5
echo '2 * 3 = ', 2 * 3, "\n"; // 2 * 3 = 6Давайте разберём вторую строку по значениям:
'2 + 3 = '— текст в кавычках, он печатается как есть.2 + 3без кавычек — вычисление: PHP складывает числа и печатает5."\n"переводит строку.
Третья строка устроена так же, только * означает умножение. Знак + или * внутри кавычек — часть текста, а без кавычек — действие над числами.
Одинарные кавычки пишут для текста, который печатается как есть. Запись \n в одинарных кавычках не работает: echo 'a\n'; напечатает букву a, обратную косую черту и букву n. Поэтому перевод строки всегда пишут в двойных кавычках: "\n".
Комментарии
Комментарий — текст в программе, который PHP пропускает. Комментарии пишут для людей, а ещё ими временно отключают строки кода.
Однострочные: // и #
Всё от // или # до конца строки — комментарий, если знак стоит вне кавычек.
В примерах курса так подписан вывод: // 5 в конце строки значит «эта строка печатает 5».
Сразу за # не ставьте [: с PHP 8 запись #[ начинает не комментарий, а другую конструкцию языка, и файл с #[note] не запустится.
Многострочные: /* */
Всё между /* и */ — комментарий, даже если он занимает несколько строк. Давайте посмотрим, какие строки здесь выполнятся:
<?php
echo 'One', "\n"; // One
# echo 'Two', "\n";
/*
echo 'Three', "\n";
echo 'Four', "\n";
*/
echo 'Five', "\n"; // FiveРазберём по строкам:
- Первый
echoпечатаетOne. - Строка с
#— комментарий целиком, иTwoне печатается. - Строки между
/*и*/тоже комментарий:ThreeиFourне печатаются. - Последний
echoпечатаетFive.
Что PHP не различает
Часть того, что вы пишете в коде, PHP не замечает. Это оформление нужно людям, которые читают программу.
Пробелы и пустые строки
Лишние пробелы между частями инструкции и пустые строки между инструкциями PHP пропускает. Запись echo 'Hi' , "\n" ; работает так же, как echo 'Hi', "\n";.
Пустыми строками отделяют одну часть программы от другой. Продолжение длинной инструкции сдвигают на 4 пробела вправо, как в первом примере урока.
Регистр ключевых слов
Ключевое слово — слово самого языка PHP, например echo. PHP не различает регистр ключевых слов: ECHO 'Hi'; сработает так же, как echo 'Hi';. Но по правилам оформления их пишут строчными буквами.
Частая ошибка
Между значениями echo забыли запятую:
<?php
echo 'Sum: ' 2 + 3, "\n"; // ✗Parse error: syntax error, unexpected integer "2", expecting "," or ";"После текста 'Sum: ' PHP ждал запятую перед следующим значением или точку с запятой в конце инструкции. А встретил число 2 и не запустил файл. Исправление — поставить запятую: echo 'Sum: ', 2 + 3, "\n";.
Главное
- Инструкция заканчивается точкой с запятой, а не концом строки.
echoпечатает несколько значений через запятую, а перевод строки"\n"пишут в двойных кавычках.- Комментарии
//,#и/* */PHP пропускает: их пишут для людей. - Лишние пробелы и пустые строки PHP пропускает, а регистр ключевых слов не различает.