Основы PHP
При создании первой программы на PHP уже были затронуты некоторые основные принципы создания скриптов на языке PHP. Теперь, рассмотрим их более подробно.
Программа или скрипт на PHP, как правило, находится в файле расширением .php . Хотя разработчики могут также вставлять код php и в файлы с расширениями .html/.htm .
Документ PHP может содержать как разметку html, так и код на языке php. Для перехода от разметки html к коду php используются теги , между которыми идет код php. Данные теги служат указанием интерпретатору PHP, что их содержимое надо интерпретировать как код php, а не разметку html.
Например, определим папке, где хранятся файлы веб-сайта (исходя из прошлых тем это должна быть папка c:\localhost ), файл hello.php . Определим в этом файле следующий код:
Собственно код PHP состоит из набора инструкций. Здесь использована одна инструкция echo «Привет мир!»; . Эта инструкция представляет встроенную команду echo , которая выводит на веб-страницу некоторое значение. Выводимое значение указывается после команды echo — в данном случае это строка «Привет мир!». Каждая отдельная инструкция в PHP завершается точкой с запятой.
Поскольку в данном случае файл «hello.php» находится в корневой папке веб-сервера, то для обращения к этому скрипту в адресной строке браузера надо ввести адрес http://localhost/hello.php . В итоге при обращении к этому скрипту мы увидим в веб-браузере следующую страницу:
Для оформления кода PHP также можно использовать краткую версию тегов: . Для этого в файле php.ini надо изменить строку:
short_open_tag = Off
short_open_tag = On
Когда пользователь обращается к скрипту в адресной строке браузера, набирая, например, http://localhost/hello.php , то веб-сервер передает его интерпретатору PHP. Затем интерпретатор обрабатывает код и генерирует на его основе html-разметку. И затем сгенерированный html-код отправляется пользователю.
В случае выше определенного скрипта hello.php сгенерированная разметка будет выглядеть следующим образом:
Привет мир!
Но естественно мы можем также добавить некоторый код html. Например, изменим скрипт hello.php следующим образом:
METANIT.COM Сайт на PHP
Как уже указывалось выше, интерпретатор с помощью тегов сможет понять, что весь текст между этими тегами следует рассматривать как код PHP. А весь код вне этих тегов рассматривается как код html.
В этом случае интерпретатор сформирует следующий html-код:
METANIT.COM Сайт на PHP
Привет мир!
При этом естественно мы можем использовать больше инструкций, а также встраивать код php в различных частях веб-страницы. Например:
METANIT.COM Заголовок параграфа"; echo "Текст параграфа"; ?>
В данном случае код PHP встраивается в двух местах. В первом случае — внутри элемента . Во втором случае внутри элемента
Это даст нам следующий результат:
При чем при использовании функции echo мы можем включать в выводимый текст html-код, как в случае с выражением:
echo "Заголовок параграфа
";
Хотя выше код php определялся в файле с расширением .php , но равным образом мы также можем определять код в файлах с расширением .html , и они также будут обрабатываться интерпретатором PHP.
Сокращенная версия тегов php
Если нам надо вывести на веб-страницу одно какое-нибудь значение, то мы можем использовать специальную форму тегов php — — после знака = («равно») ставится выводимое выражение. Например:
METANIT.COM 2 + 2 =
В первом случае выводится строка .
Во втором случае выводится результат выражения 2 + 2 : .
Результат работы скрипта:
Комментарии
При создании веб-сайта мы можем использовать комментарии. Например, мы можем прокомментировать какое-либо действие, чтобы впоследствии иметь представление, что этот код делает:
Привет мир!"; // вывод сообщения // echo "Пока мир"; ?>
Знак // предваряет однострочный комментарий, и все что идет после этого знака на одной строке, будет считаться комментарием и не будет выполняться интерпретатором. При обработке интерпретатор просто будет пропускать комментарии.
Если нам надо закомментировать несколько строк, то мы можем использовать многострочный комментарий /* текст комментария*/ :
Привет мир!
«; // вывод сообщения /* многострочный комментарий вывод результата арифметического выражения echo «2 + 2 margin-top:25px;»>
Синтаксис языка PHP
После установки Apache, PHP и MySQL вы уже можете начинать писать программный код. При работе с PHP, в отличие от других языков программирования, не требуются такие сложные инструменты, как компилятор или отладчик. Вскоре вы на практике убедитесь, что PHP-код можно добавлять в имеющийся документ HTML, и после некоторой наладки запускать его.
PHP и HTML-текст
Начав писать PHP-код, вы будете работать с самыми обычными текстовыми файлами, содержащими код PHP и HTML. HTML – это простой язык разметки, позволяющий определить, как должна выглядеть страница в окне браузера, но это всего лишь текст. Сервер никак не обрабатывает HTML-файлы перед их отправкой браузеру пользователя. В отличие от HTML, PHP-код должен быть как-то интерпретирован, прежде чем окончательный вариант страницы будет отправлен браузеру. Иначе такая страница на экране у пользователя превратится в смесь текста и программного кода.
Чтобы выделить PHP-код и тем самым проинформировать веб-сервер о необходимости его обработки, PHP-код размещают между формальными или неформальными тегами ( ), смешивая с HTML. В примере ниже демонстрируется это с помощью конструкций echo и print. Конструкции echo и print почти совпадают, за исключением того, что конструкция echo может принимать несколько аргументов и не возвращает никакого значения, тогда как конструкция print способна принимать только один аргумент.
Файл этого примера мы назвали index.php, а вы можете взять любое другое имя, главное чтобы оно имело расширение .php. Это расширение сообщает веб-серверу, что файл нужно обрабатывать как PHP-код:
Конструкции echo и print
Основы PHP '; echo ("Это мой первый документ!
"); print 'Goodbye'; ?>
Когда браузер запросит этот файл, PHP интерпретирует его и воспроизведет текст в формате HTML:
Включение файлов
Еще один способ, с помощью которого можно вводить код PHP в код HTML, состоит в том, что код PHP можно помещать в отдельный файл и вызывать его с использованием функций include и require языка PHP. Предусмотрено всего четыре функции типа include и require:
- include(‘/filepath/filename’);
- require(‘/filepath/filename’);
- include_once(‘/filepath/filename’);
- require_once(‘/filepath/filename’).
В предыдущих версиях PHP наблюдались значительные различия в функциональных возможностях и быстродействии между функциями типа include и require. Это больше не имеет места; оба набора функций отличаются только тем, что в случае неудачного завершения вырабатывают разные ошибки. Функции include() и include_once() при возникновении сбоя просто вырабатывают предупреждение об отказе, а функции require() и require_once() вырабатывают неисправимую ошибку и вызывают завершение сценария.
Инструкция include позволяет подключать и присоединять к вашему PHP-сценарию другие сценарии. Действие этой инструкции можно представить как вставку кода из подключаемого файла в ваш PHP-сценарий. В примере ниже приведен программный код подключаемого файла с именем add.php:
'; echo ("Это мой первый документ!
"); print 'Goodbye'; ?>
Ниже показан пример, в котором этот файл добавляется в файл index.php с помощью инструкции include. В примере предполагается, что файл add.php находится в том же каталоге, что и index.php.
Использование инструкции include
Основы PHP
Результат окажется аналогичным показанному на рисунке выше, только в этом сценарии мы вынесли работающий код в отдельный файл. Это позволяет не смешивать код HTML и PHP, облегчая разработку приложений.
При подключении PHP-сценариев с многоступенчатой вложенностью могут возникнуть проблемы из-за того, что инструкция include не проверяет, были ли ранее подключены данные сценарии. Например, изменим файл add.php, добавив в него функцию (с переменными и функциями мы познакомимся чуть позже, а пока просто вставьте этот код в файл add.php):
add.php — исходный код
А теперь попытаемся выполнить такой сценарий в исходном файле index.php:
Основы PHP
Будет получено сообщение об ошибке, так как фактически мы дважды определили функцию с одним и тем же именем:
Чтобы избежать ошибок подобного рода, следует использовать инструкцию include_once, как показано в примере ниже:
Основы PHP
Очевидно, что вы и не собираетесь помещать инструкции include для подключения одного и того же файла непосредственно друг за другом. Но показанная ситуация с двойным подключением является упрощенным вариантом распространенной ошибки, когда вы попытаетесь подключить файл, который присоединяется через другой подключаемый файл. Поэтому всегда следует использовать include_once, так как у этой инструкции нет недостатка инструкции include.
Чтобы гарантировать подключение файла или остановить работу программы, если выполнить подключение невозможно, используйте функцию require или парную ей require_once. Они делают то же самое, что инструкции include и include_once, но гарантируют подключение указанного файла либо прекращение исполнения сценария, что иногда может быть очень удобно!
Функцию require можно использовать вместо include, например, если подключается файл с определениями критически важных функций, которые должны выполняться в вашем сценарии, или переменных, описывающих параметры подключения к базе данных, без которых сценарий не сможет функционировать. Например, попытаемся с помощью функции require подключить несуществующий файл:
Основы PHP
Будет получено следующее сообщение об ошибке:
Наиболее широко распространенный способ использования возможностей функций включения языка PHP состоит в добавлении общих верхнего и нижнего колонтитулов ко всем веб-страницам сайта. При этом необязательно подключать файлы с расширением *.php, можно включать статичные файлы HTML:
Здесь находится контент страницы
header.html
Основы PHP
footer.html