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

Справочный материал по основным языкам программирования и верстки сайтов.

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб-сайтов под "ключ".

Разработка отдельных фрагментов сайтов, консультации по вопросам верстки веб-страниц и веб-программирования.

Основы PHP. Характеристика PHP. PHP-сценарии

Основы PHP

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

Характеристика PHP

PHP — язык, специально нацеленный на работу в Интернете, язык с универсальным (правда, за некоторыми оговорками) и ясным синтаксисом, похожим на Си, сочетающий достоинства Perl и Си. И хотя язык PHP еще довольно молодой, он (точнее, его интерпретатор) установлен уже на миллионах серверов по всему миру, и цифра продолжает расти. Новое поколение PHP — должно вообще стереть все преимущества Perl перед PHP, как с точки зрения быстродействия обработки программ, так и с точки зрения синтаксиса. Наконец, большинство PHP-сценариев (особенно не очень больших размеров) работают быстрее аналогичных им программ, написанных на Perl.

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

Итак, мы видим, что PHP составлен из двух почти независимых блоков— транслятора и интерпретатора. Зачем же понадобилось так делать? Конечно, из соображений быстродействия. Посудите сами: синтаксический разбор осуществляется всего один раз на этапе трансляции, а исполняется уже "полуфабрикат" — байт-код, который гораздо более удобен для этих целей.

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

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

Для обработки больших массивов данных, используются базы данных. База данных — это набор очень большого числа записей с одинаковой структурой плюс программное обеспечение для быстрого поиска, добавления и удаления записей. PHP поддерживает работу с очень большим числом разнообразных баз данных, поэтому написание сценариев с применением баз данных не должно вызвать особых проблем. Кстати, и выполняться такие скрипты будут быстрее, чем аналогичные им "самодельные", написанные на Си — ведь разработкой баз данных и эффективных алгоритмов работы с ними занималось множество людей. А в PHP останется лишь вызвать нужную функцию (например, поиск в базе данных) и сразу получить результат — многие базы данных даже умеют нужным образом его отсортировать и вообще выполнить всю "грязную работу"...

У интерпретатора есть и другие преимущества перед классическим компилятором, например, перед Си. Вот некоторые из них.

  • Упрощается обнаружение ошибок во время выполнения программы. В случае сбоя интерпретатор сразу же выведет сообщение, что что-то не так.
  • Можно не заботиться об освобождении выделенной памяти. Интерпретатор сам определит, когда та или иная переменная в программе уже не используется, и освободит память, выделенную для нее.
  • Существует возможность написать программу, которая, грубо говоря, будет формировать и тут же исполнять другую программу, что очень часто практикуется при шаблонной системе организации скриптов. В частности, мы можем формировать идентификаторы во время исполнения программы, создавать массивы ано нимных функций и т. д.
  • Не нужно думать о типах переменных (как это, кстати, было сделано в приведенном цикле for). Мы еще вернемся к данному вопросу в дальнейшем.

Есть и другие достоинства. Вообще, использование интерпретатора способно дать сценариям ту мощь, которую пользователи Web от них и ожидают. Но за все нужно платить: эта пресловутая медлительность интерпретаторов, даже с блоком трансляции, способна вывести из себя самого закаленного программиста.

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

Вывод данных

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

Вывод данных в окно с помощью РНР можно выполнить посредством оператора echo. Этот оператор позволяет вывести данные различных типов(числа, символьные строки и т.д.). Вы можете использовать его для вывода обычных текстовых строк, строк HTML-кода, а также данных других типов(чисел, массивов и др.). Посредством этого оператора можно выводить в окно браузера как сообщения, предусмотренные вашими приложениями, так и отладочные(значения переменных, возвращаемые значения выражений).

Синтаксис оператора вывода echo:

echo элемент1, элемент2, ... , элементN

Данные (элемент1, элемент2, ... , элементN), подлежащие выводу, могут быть различных типов. Например, это могут быть числа, строки различных символов и др. Все данные, перечисленные в списке, выводятся в окне браузера друг за другом, без пробелов и запятых.

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