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

В этой главе:

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

  • Символы разделители

  • Литералы

  • Теги PHP

  • Комментарии

  • Разделение инструкций

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

Лексическая структура языка программирования - это набор элементарных правил, которые определяют, как вы пишите программы на этом языке. Это низкоуровневый синтаксис языка, который определяет как выглядят имена переменных, символы, используемые для комментариев, и то, как инструкции отделяются друг от друга. В этой главе будет рассмотрена лексическая структура языка PHP.

Символы разделители

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

Небольшое пояснение для тех кто не знает, что такое лексема. Лексема - минимальная единица языка, имеющая самостоятельный смысл. К лексеме относятся: разделители, идентификаторы, ключевые слова, литералы, знаки операций.

Литералы

Литерал - это значение (константа), которое указанно непосредственно в тексте программы.

Пример литералов:

1
2
3
4
5
4                 // число четыре
11.7              // вещественное число
"мой текст"       // строка текста в двойных кавычках
'заголовок h2'    // другая строка в одинарных кавычках
true              // логическое значение (булево)

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

Теги PHP

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

Всего в PHP существует четыре набора тегов, которые могут быть использованы для обозначения PHP-кода. Из них только два <?php ?> и <script language="php"> </script> всегда доступны. Другими двумя являются короткие теги <? и ?> и теги в стиле ASP <% и %>, которые могут быть включены или выключены в конфигурационном файле php.ini.

Примеры:

1
2
3
4
5
6
7
8
9
10
11
1.  <?php echo 'какая-то строка'; ?>
 
2.  <script language="php">
        echo 'PHP между тегами script';
    </script>
 
3.  <? echo 'короткие теги'; ?>
    <?= выражение ?> Это синоним для <? echo выражение ?>
 
4.  <% echo 'можно использовать теги в стиле ASP'; %>
    <%= $variable; %> Это синоним для <% echo $variable; %>

Несмотря на то, что теги указанные в первых двух примерах всегда доступны, наиболее широко используется (и рекомендуется) первый пример из этих двух.

Короткие теги (третий пример) доступны, только когда они включены с помощью директивы short_open_tag в конфигурационном файле php.ini, либо если PHP был скомпилирован с опцией --enable-short-tags.

Теги в стиле ASP (четвертый пример) доступны, только когда они включены с помощью директивы asp_tags в конфигурационном файле php.ini.

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

Пример:

1
2
3
4
5
6
7
8
9
<?php
 
  echo "Hello world";
 
  // ... еще какой-то код
 
  echo "Последний оператор";
 
  // Скрипт заканчивается без закрывающего тега PHP

Если вы (случайно) оставили символ новой строки после закрывающего тега PHP ('?>'), то вы можете увидеть например такое сообщение ошибки: "Заголовки уже отправлены". Так что если вы увидите такую ошибку на выходе, дважды проверьте PHP файл на пробел или символ новой строки после закрывающего тега.

Комментарии

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

PHP поддерживает 3 вида комментариев:

Пример:

1
2
3
4
5
6
7
8
<?php
 
  // Это однострочный комментарий
  /* Это многострочный комментарий,
       а, это еще одна строка комментария */
  # Еще один однострочный комментарий
       
?>

Однострочные комментарии идут только до конца строки или текущего блока PHP-кода, в зависимости от того, что идет перед ними. Это означает, что HTML-код после // ... ?> или # ... ?> будет напечатан, потому что закрывающий тег ?> завершает режим работы PHP и возвращается режим HTML.

Пример:

1
2
<h1>Это <?php # echo "простой";?> пример</h1>
<p>Заголовок вверху выведет 'Это пример'.</p>

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

1
2
3
4
5
6
7
<?php
 
 /*
    echo "Это тест"; /* Этот комментарий создаст проблему */
 */
  
?>

Разделение инструкций

Инструкция (statement) является структурной единицей программы на PHP. Все инструкции состоят из выражений и операторов. Любая программа обычно представляет собой последовательность из многих инструкций. Чтобы лучше понять, что это такое, в качестве примера ниже приведен код, в котором содержится одна инструкция: echo 'Это тест';

1
2
3
4
5
<?php
 
    echo 'Это текст';
      
?>

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

Окончание инструкции обозначается знаком "точка с запятой". Этот знак является обязательным, однако чаще всего забывается в процессе программирования. Если вы забудете поставить точку с запятой в конце инструкции, то в большинстве случаев интерпретатор PHP вызовет ошибку. Хотя есть одно исключение: закрывающий тег блока PHP-кода автоматически подставляет точку с запятой последней инструкции, т.е. нет необходимости обязательно ставить точку с запятой в конце последней строки блока с PHP-кодом.

Пример:

1

2

3

4

5

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