Перейти к содержимому
Теория · Первая программа · урок 2 из 7

Инструкции и комментарии

В прошлом уроке программа печатала строки командой echo. Вернёмся к карточке с рецептом: каждый шаг на ней заканчивается точкой, чтобы повар видел, где кончается один шаг и начинается следующий. А на полях автор оставляет заметки для себя, и повар их не выполняет.

В программе на PHP есть и то и другое. Шаги разделяет точка с запятой, а заметки для людей называются комментариями. Давайте посмотрим, как PHP понимает, где кончается одна команда.

Инструкции и точка с запятой

Каждая команда программы — это инструкция, например echo "Hello\n";. PHP узнаёт конец инструкции по точке с запятой, а не по концу строки.

Поэтому одна инструкция может занять несколько строк:

PHP
<?php

echo 'One statement ',
    'on three lines',
    "\n"; // One statement on three lines

Текст здесь взят в одинарные кавычки: 'on three lines' печатается так же, как "on three lines". Разберём, как PHP читает этот пример:

  1. Он начинает инструкцию со слова echo и читает дальше, через переводы строк.
  2. Запятые после 'One statement ' и 'on three lines' говорят, что значения ещё не кончились.
  3. Точка с запятой после "\n" завершает инструкцию, и echo печатает всё одной строкой.

Две инструкции можно записать и в одну строку: echo 'a'; echo 'b'; напечатает ab. PHP такую запись поймёт, но так не пишут: код труднее читать.

Здесь картинка с рецептом перестаёт работать. Повар поймёт шаг и без точки в конце, а PHP без точки с запятой не запустит файл вовсе.

echo с несколькими значениями

echo печатает несколько значений подряд, если перечислить их через запятую:

PHP
<?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

Давайте разберём вторую строку по значениям:

  1. '2 + 3 = ' — текст в кавычках, он печатается как есть.
  2. 2 + 3 без кавычек — вычисление: PHP складывает числа и печатает 5.
  3. "\n" переводит строку.

Третья строка устроена так же, только * означает умножение. Знак + или * внутри кавычек — часть текста, а без кавычек — действие над числами.

Одинарные кавычки пишут для текста, который печатается как есть. Запись \n в одинарных кавычках не работает: echo 'a\n'; напечатает букву a, обратную косую черту и букву n. Поэтому перевод строки всегда пишут в двойных кавычках: "\n".

Комментарии

Комментарий — текст в программе, который PHP пропускает. Комментарии пишут для людей, а ещё ими временно отключают строки кода.

Однострочные: // и #

Всё от // или # до конца строки — комментарий, если знак стоит вне кавычек.

В примерах курса так подписан вывод: // 5 в конце строки значит «эта строка печатает 5».

Сразу за # не ставьте [: с PHP 8 запись #[ начинает не комментарий, а другую конструкцию языка, и файл с #[note] не запустится.

Многострочные: /* */

Всё между /* и */ — комментарий, даже если он занимает несколько строк. Давайте посмотрим, какие строки здесь выполнятся:

PHP
<?php

echo 'One', "\n"; // One
# echo 'Two', "\n";
/*
echo 'Three', "\n";
echo 'Four', "\n";
*/
echo 'Five', "\n"; // Five

Разберём по строкам:

  1. Первый echo печатает One.
  2. Строка с # — комментарий целиком, и Two не печатается.
  3. Строки между /* и */ тоже комментарий: Three и Four не печатаются.
  4. Последний echo печатает Five.

Что PHP не различает

Часть того, что вы пишете в коде, PHP не замечает. Это оформление нужно людям, которые читают программу.

Пробелы и пустые строки

Лишние пробелы между частями инструкции и пустые строки между инструкциями PHP пропускает. Запись echo 'Hi' , "\n" ; работает так же, как echo 'Hi', "\n";.

Пустыми строками отделяют одну часть программы от другой. Продолжение длинной инструкции сдвигают на 4 пробела вправо, как в первом примере урока.

Регистр ключевых слов

Ключевое слово — слово самого языка PHP, например echo. PHP не различает регистр ключевых слов: ECHO 'Hi'; сработает так же, как echo 'Hi';. Но по правилам оформления их пишут строчными буквами.

Частая ошибка

Между значениями echo забыли запятую:

PHP
<?php

echo 'Sum: ' 2 + 3, "\n"; // ✗
TEXT
Parse error: syntax error, unexpected integer "2", expecting "," or ";"

После текста 'Sum: ' PHP ждал запятую перед следующим значением или точку с запятой в конце инструкции. А встретил число 2 и не запустил файл. Исправление — поставить запятую: echo 'Sum: ', 2 + 3, "\n";.

Главное

  • Инструкция заканчивается точкой с запятой, а не концом строки.
  • echo печатает несколько значений через запятую, а перевод строки "\n" пишут в двойных кавычках.
  • Комментарии //, # и /* */ PHP пропускает: их пишут для людей.
  • Лишние пробелы и пустые строки PHP пропускает, а регистр ключевых слов не различает.