Главные новости

Основы синтаксиса PHP

В этой главе:

Лексическая структура

Лексическая структура языка программирования — это набор элементарных правил, которые определяют, какие символы могут содержать идентификаторы, какие символы используются для определения комментариев, как инструкции отделяются друг от друга и т. д.

Каждое отдельное правило в лексической структуре называется лексемой. Лексема — минимальная единица текста программы, которая имеет определённый смысл для интерпретатора и которая не может быть разбита на отдельные части. К лексемам относятся: разделители, идентификаторы, ключевые слова, литералы, знаки операторов и т. д.

Что такое PHP

Аббревиатура PHP, расшифровывается как "PHP: Hypertext Preprocessor" (PHP: Препроцессор Гипертекста). PHP — это интерпретируемый язык программирования общего назначения с открытым исходным кодом. PHP хоть и является языком общего назначения, но создавался он специально для web-разработки. Основным преимуществом PHP является возможность интегрировать (встраивать) PHP-код непосредственно в обычные HTML-документы.

Пример встраивания PHP-кода в HTML-документ:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Пример</title>
</head>
<body>
<?php echo "Hello world! - привет мир на PHP"; ?>
</body>
</html>

Теги PHP

Когда интерпретатор PHP обрабатывает файл, он ищет теги <?php и ?>, которые указывают, где начинается и где заканчивается PHP-код. Всё, что находится вне пары открывающих и закрывающих тегов, будет проигнорировано интерпретатором (т. е. просто будет отдано веб-серверу как есть). К примеру файл переданный интерпретатору PHP имеет следующий код:

<p>Это будет проигнорировано интерпретатором и просто будет отдано как есть, сначала веб-серверу, а тот в свою очередь отдаст браузеру.</p> <?php echo "Этот код сначала обрабатывается интерпретатором PHP, и только затем отдаётся веб-серверу"; ?> <p>Это тоже будет проигнорировано интерпретатором и просто будет передано веб-серверу как есть.</p> <?php echo "Этот код обрабатывается интерпретатором PHP"; // Закрывающий PHP-тег не указан в конце кода

Если файл содержит только PHP-код или он расположен в самом конце файла, то есть после него ничего уже нет, то закрывающий тег предпочтительно опустить (не указывать). Это помогает избежать добавления случайных пробельных символов после закрывающего тега PHP, которые могут послужить причиной нежелательных эффектов.

PHP также допускает использование короткого открывающего тега <? вместо <?php:

<? echo "Hello World!"; ?>

Пробельные символы

Между лексемами могут вставляться разделители, в качестве которых используются пробельные символы: пробелы, табуляция и переносы строк. Число пробельных символов не ограничивается и зависит от предпочтений программиста, основная цель которого — создать наглядный и легко читаемый текст программы (исходный код). Интерпретатор игнорирует все пробельные символы между лексемами и воспринимает текст как сплошной поток кода, для него важно лишь определить границы между лексемами.

В примере ниже представлен PHP-код, в котором используются пробельные символы между лексемами:

<?php function drawStarLine($numStars) { for($i = 0; $i < $numStars; $i++) { echo "*"; } } drawStarLine(45); ?>

Код примера можно было бы написать и в одну строку, не используя пробельных символов, но такой код будет менее удобен для чтения:

<?php function drawStarLine($numStars){for($i=0;$i<$numStars;$i++){echo "*";}}drawStarLine(45);?>

Комментарии

Комментарий - это пояснение.

С точки зрения интерпретатора, комментарий - это текст, который игнорируется при интерпретации кода.

Комментарии можно использовать для пояснения каких-нибудь участков кода, это бывает особенно полезным, когда приходится возвращаться к коду позднее.

Ещё одна важная роль комментариев, которую часто используют на практике — это временное отключение некоторой части кода. Таким образом комментарии используют, когда бывает трудно определить местонахождение ошибки или, когда некоторая часть кода временно не нужна.

PHP поддерживает три вида комментариев: два однострочных и один многострочный. Всё, что идёт после символов // (два слэша) или # (решётка) и до конца строки, считается комментарием (однострочным). Всё, что находится между символами /* и */ также считается комментарием, такой вид комментария называется многострочным, так как он может состоять из нескольких строк, если символы /* и */ расположить на разных строках:

// Однострочный комментарий # Другой однострочный комментарий /* Это многострочный комментарий */ /* * Это ещё один многострочный комментарий. * Он расположен на нескольких строках * и может содержать различные символы. * Звёздочки слева вставлены для красоты. */

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

/* echo "Это тест"; /* Этот комментарий создаст проблему */ */

Литералы

Литерал - это запись в исходном коде программы, представляющая собой значение некоторого типа данных, у которого нет имени:

11 // Числовой литерал "мой текст" // Строковой литерал true // Булев литерал [] // Литерал массива

В следующем примере 23 и "акула" это литералы, а $num и $fish — переменные, которым они присваиваются:

$num = 23; $fish = "акула";

Литералы являются важной частью любого языка программирования, так как написать программу без них невозможно.

Идентификаторы

Идентификатором называется последовательность букв, цифр и символов подчёркивания ( _ ). Идентификаторы выступают в качестве имён переменных, функций, свойств объекта, и т. д. При выборе идентификатора необходимо учитывать следующие правила:

  • Идентификаторы не могут совпадать ни с одним из ключевых слов PHP, т. к. они являются частью синтаксиса самого языка и имеют специальное значение для интерпретатора.
  • Идентификаторы могут состоять из одного и более символов.
  • Идентификаторы должны начинаться с буквы или символа подчёркивания. Далее могут следовать любые буквы, цифры и символы подчёркивания в любом количестве.

Примеры допустимых идентификаторов в качестве имён переменных:

$x $my_var $_myCar2

Чтобы лучше понимать код, при его чтении, идентификаторы желательно придумывать такие, которые будут соответствовать хранящимся в них данным:

$age = 35; // Возраст $hairColor = "Чёрный"; // Цвет волос $year = 1900; // Год

Есть два устоявшихся негласных стиля используемых для записи идентификаторов, состоящих из нескольких слов: CamelCase и Snake_case.

CamelCase — "Верблюжья" нотация (нотация — это устоявшиеся правила записи). Согласно этому стилю идентификаторы, которые состоят из одного слова, пишутся строчными буквами:

$color = "серый"; $number = 15;

Если идентификатор состоит более, чем из одного слова, то первое слово пишется строчными буквами, а каждое последующее слово начинается с прописной (заглавной) буквы:

$myAge = 23; $firstName = "Дональд";

Верблюжья нотация получила своё название в результате того, что заглавные буквы внутри идентификатора напоминают горбы верблюда.

Snake_case — "Змеиная" нотация. Согласно этому стилю идентификаторы, которые состоят из одного слова, пишутся строчными буквами:

$color = "белый"; $number = 25;

Если идентификатор состоит более, чем из одного слова, то слова разделяются символом нижнего подчёркивания, при этом каждое последующее слово пишется с маленькой буквы:

$my_age = 23; $first_name = "Дональд";

Инструкции

Инструкция — это указание интерпретатору на совершение какого-либо действия, например, создать переменную, запустить цикл, выполнить условный переход, выйти из функции и т. п. Любая программа представляет собой последовательность выполняемых инструкций. Окончание инструкции обозначается символом ; (точка с запятой):

<?php echo 'Это текст'; ?>

Точку с запятой можно не ставить у последней инструкции перед закрывающим тегом ?>. В этом случае закрывающий тег автоматически подставляет точку с запятой после последней инструкции:

<?php echo 'Точка с запятой будет подставлена автоматически.' ?>

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