На PHP можно сделать все, что можно сделать с помощью CGI–программ. Например: обрабатывать данные из форм, генерировать динамические страницы, получать и посылать куки (cookies).
Кроме этого в PHP включена поддержка многих баз данных (databases), что делает написание Web-приложений с использованием баз данных до невозможности простым.
Ниже приведен неполный перечень поддерживаемых БД:
Adabas D
InterBase
Solid
dBase
mSQL
Sybase
Empress
MySQL
Velocis
FilePro
Oracle
Unix dbm
Informix
PostgreSQL
Также PHP понимает протоколы IMAP, SNMP, NNTP, POP3 и даже HTTP, а также имеет возможность работать с сокетами (sockets) и общаться по другим протоколам.
Процесс выполнения php-сценария при обращении браузера к серверу состоит в следующем. Вначале браузер запрашивает страницу с расширением .php, после чего web-сервер пропускает программу через машину PHP и выдаёт результат в виде html-кода. Если взять стандартную страницу HTML, изменить расширение на .php и пропустить её через машину PHP, последняя просто перешлёт её пользователю без изменений. Чтобы включить в этот файл команды PHP, необходимо заключить команды PHP в специальные теги, которых различают 4 вида (они эквивалентны и можно использовать любые):
Инструкция обработки XML:
<?php... ?>
Инструкция обработки SGML:
<? ...?>
Инструкция обработки сценариев HTML:
<script language = "php"> ...</script>
Инструкция в стиле ASP:
<% ...%>
Наиболее часто используемый стиль - XML или SGML.
PHP предоставляет несколько методов для вставки комментариев.
<phpecho("<p>Hello</p>"); // комментарийecho("<p>Hello</p>"); # комментарий /* и это тоже комментарии */?>
Стили комментариев PHP действуют только внутри ограничителей PHP. Если PHP встретит эти символы комментариев вне ограничителей, то они, как и любой текст, будут помещены на html-страницу.
Имена переменных начинаются с символа $, тип переменной объявлять не требуется. В отличие от имен функций и классов, имена переменных чувствительны к регистру. Переменные обрабатываются в строках, заключенных в двойные кавычки.
Инструкции завершаются точкой с запятой ;
PHP является языком программирования с динамической типизацией, не требующим указания типа при объявлении переменных, равно как и самого объявления переменных. Преобразования между скалярными типами может осуществляться автоматически.
Скалярные типы данных:
· целый тип (integer),
· вещественный тип данных (float, double),
· логический тип (boolean),
· строковый тип (string)
· специальный тип NULL.
Нескалярные типы данных:
· "ресурс" (resource),
· массив (array)
· и объект (object).
Тип NULL предназначен для переменных без определенного значения. Значение NULL принимают неинициализированные переменные, переменные инициализированные константой NULL, а также переменные, удаленные при помощи конструкции unset().
Ссылки на внешние ресурсы имеют тип resource. Переменные данного типа, как правило, представляют собой дескриптор, позволяющий управлять внешними объектами, такими как файлы, динамические изображения, результирующие таблицы базы данных и т. п.