ProfiPHPProfiPHP
  1. Главная
  2. Самоучитель PHP 7
  3. Начало пути веб-программиста PHP

Начало пути веб-программиста PHP

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

Скрипты


Программы, написанные на языке программирования РНР называются скриптами, потому что работают исключительно в определенной среде и используют ресурсы данной среды. Например, для работы скриптового языка программирования JavaScript необходим Web-браузер, точно так и с PHP, для которого необходимо Web-окружение, включающее в себя Web-сервер с интерпретатором PHP, сервер базы данных и других программ. Именно Web-сервер принимает запросы от клиента, обеспечивает их параллельное выполнение и отправку данных. А РНР-скрипт, в свою очередь, получает всю информацию о запросе и выполняет его, а затем отправляет данные обратно серверу, который незамедлительно отправляет данные клиенту. С использованием этих языков программирования невозможно создать программу, работающую без соответствующей среды. Хотя язык программирования РНР допускает создание программ, работающих независимо от Wеb-сервера, однако в такой форме он не получил широкого распространения.

Особенностью языка программирования РНР является возможность писать его код вперемешку с НТМL кодом. Для того чтобы интерпретатор РНР различал HTML и РНР коды, последний заключается в специальные теги <?php и ?>, между которыми располагаются операторы и конструкции языка программирования РНР.
Первые версии РНР разрабатывались как шаблонизатор - системы, встраиваемой в НТМL-код для выполнения операций не поддерживающихся статическим HTML. Но очень скоро РНР превратился в полноценный язык, и стала приобретать популярность обратная тенденция - отделение РНР и НТМL-кода.

Приведем классический пример, выводящий в окно браузера при помощи конструкции Echo фразу "Hello, world!".
<!DOCTYPE html>
<html lang="ru">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>PHP-скрипт</title>
</head>
<body>
<?php echo "Hello, world!"; ?>
</body>
</html>
Конструкция Echo выводит одну или несколько строк в стандартный вывод. В результате работы скрипта в окно браузера отобразится фраза "Hello, world!". Важно отметить, что при работе с серверным языком программирования РНР, скрипты, расположенные между тегами <?php и ?>, выполняются на сервере, а клиенту отправляется лишь результат работы интерпретатора, в чем можно легко убедиться, просмотрев исходный код НТМL-страницы.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>PHP-скрипт</title>
</head>
<body>
Hello, world!</body>
</html>

Начальные и конечные теги


Для того, чтобы интерпретатор мог разделить НТМL и РНР коды, РНР-скрипт необходимо разместить между начальным <?php и конечным тегом ?>. Даже если НТМL код отсутствует, указание РНР тегов является обязательным, в противном случае РНР код будет выведен в окно браузера без без интерпретации. Помимо тегов <?php и ?>, РНР поддерживает специальный тип тегов <?= ... ?> для вывода результата одиночного РНР выражения. Например, в предыдущем скрипте вывод надписи можно было осуществить следующим образом:
<?= "Hello, world!"; ?>
НТМL страница может содержать более чем одну вставку РНР кода. Например:
<?php
echo "Текущее время:<br />";
echo date( 'H:i:s' );
?>
Если после завершающего тега ?> нет никакого вывода, его можно опустить. Более того, стандарт кодирования PSR-2, который определяет форматирование РНР кода для распространяемых компонентов, требует не указывать завершающий тег ?> в файлах, которые содержат только PHP код. Более подробно можно узнать из статьи Нужен ли закрывающий тег ?> в PHP?

Стандарты PSR определяют правила разработки компонентов РНР, их цель - унифицировать фреймворки и компоненты. Стандарты PSR-1 и PSR-2 определяют форматирование и стилевое оформление РНР-кода. Необходимо придерживаться этих стандартов.

Использование точки с запятой


Выражение в языке PHP являет собой совокупность конструкций языка программирования, которые заканчиваются точкой с запятой. Если выражение одно, надобность отделять его от других выражений отсутствует. Например:
<?php echo "Hello, world!" ?>
Однако, как можно видеть со строкой "Текущее время", в конце конструкций Echo имеется точка с запятой. Если не указать этот разделитель, интерпретатор языка программирования РНР посчитает выражение на новой строке продолжением предыдущего и не сможет корректно разобрать скрипт. В результате будет сгенерировано сообщение об ошибке:
Parse error: syntax error, unexpected 'echo' (T_ECHO), expecting ',' or ';'
("Ошибка разбора: синтаксическая ошибка, неожиданно встречена конструкция echo, ожидается либо запятая ',', либо точка с запятой ';'").
В последнем выражении перед завершающим тегом ?> можно не писать точку с запятой, однако настоятельно рекомендуется не пользоваться этой особенностью и помещать точки с запятой после каждого выражения, чтобы исключить появления трудноулавливаемых ошибок.

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

Составные выражения и фигурные скобки


Составным выражением называется группа нескольких выражений, которая объединена фигурными скобками.
<?php
{
echo 1 + 1;
echo "Hello, world!";
}
Выражения внутри фигурных скобок располагаются с отступом. Такой отступ не обязателен, однако он значительно повышает читаемость программы. Стандарт кодирования PSR-2 требует, чтобы отступ оформлялся 4 пробелами.

Очень часто составное выражение используются для стилистического оформления PHP кода, но основное предназначение - совместная работа с условными операторами, операторами цикла. Также составное выражение может быть расположено в нескольких РНР-вставках.

Сотавное выражение в любой момент может быть прервано тегами <?php и ?>, а затем продолжено. Впрочем, существуют исключения, например, составное выражение, применяемое для формирования класса нельзя разбивать тегами данными тегами.

Комментарии


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

РНР предоставляет несколько способов для вставки комментариев:

// - Комментарий в стиле языка С++, начинающийся с символа двух слешей // и заканчивающийся переводом строки.

# - Комментарий в стиле скриптовых языков UNIX, начинающийся с символа диеза # и заканчивающийся переводом строки.

/* ... */ - Многострочный комментарий в в стиле языка C.

Продемонстрируем использование всех трех видов комментариев:
<?php
/*
Демонстрация разных типов комментариев
в языке программирования PHP
*/
echo 'Hello'; // это комментарий
echo 'Hello'; # и это комментарий
Естественно, что комментарии РНР действуют только внутри тегов-ограничителей <?php ... ?>. То есть, если символы комментариев будут находиться вне тегов ограничителей, то они, как и любой текст, будут отображены браузером.

Включение РНР-файла


РНР скрипты можно подключать к другим РНР скриптам при помощи двух конструкций: Include и Require. Обе принимают единственный аргумент - путь к включаемому файлу, и результатом их действия является подстановка содержимого файла в место их вызова в исходном скрипте. Если в качестве включаемого скрипта выступает РНР скрипт, то сначала происходит его подстановка в исходный скрипт, а затем интерпретация результирующего скрипта.
<?php
echo 'Основной скрипт<br />';
include 'included.php';
echo 'Основной скрипт<br />';
Пусть файл included.php содержит следующий код:
<?php
echo 'Включаемый файл<br />';
В результате запуска первого скрипта в браузер будут выведены следующие строки:
Основной скрипт
Включаемый файл
Основной скрипт
Различие Include и Require заключается в их реакции на отсутствие включаемого файла. В случае Include выводится предупреждение, весь последующий код продолжает выполняться; в случае Require, если нельзя найти файл, работа скрипта останавливается.

Добавить комментарий

Имя:
Текст комментария: