Флешка

Первый урок по PHP: особенности синтаксиса, вывод данных, переменные, работа с ошибками. Платные и бесплатные скрипты для вебмастера Значения по умолчанию

Первый урок по PHP: особенности синтаксиса, вывод данных, переменные, работа с ошибками. Платные и бесплатные скрипты для вебмастера Значения по умолчанию

» Синтаксис языка PHP

Навигация по Самоучителю: 1.1 О PHP 1.2 История PHP 1.3 Почему именно PHP? 1.4 Как это все (PHP) работает? 1.5 От интерпретатора к компилятору 1.6 Возможности PHP 1.7 Что необходимо для работы? 1.8 Ответы на ваши вопросы 1.9 Заключение к главе 2.1 Установка и конфигурирование 2.2 Установка Apache 2.3 Установка PHP 2.4 Установка MySQL 2.5 Настройка Apache 2.6 Настройка PHP 2.7 Настройка MySQL 2.8 Тестирование программ Apache, PHP 2.9 Заключение к главе 2 3.1 Синтаксис языка PHP 3.2 Профессиональная вставка 3.3 РНР и HTML 3.4 Комментарии в языке (коде) PHP 3.5 Оформление PHP кода программы 3.6 Заключение к главе 3 4.1 Переменные. Что такое переменные? 4.2 Переменные. Типы данных в PHP 4.3 Integer. Тип данных. 4.4 Double. Тип данных. 4.5 Boolean. Тип данных. 4.6 Другие типы данных 4.7 Определение переменных в PHP 4.8 Изменение типа данных в PHP 4.9 Ссылки на переменные в PHP 4.10 Динамические переменные в PHP 4.11 Что такое Константы в PHP? 4.12 Определение констант в языке PHP 4.13 Предопределенные константы в языке PHP 4.14 Заключение к главе 4 5.1 Операторы в PHP 5.2 Оператор присваивания в PHP 5.3 Арифметические операторы в PHP 5.4 Операторы отношения в PHP 5.5 Логические операторы в PHP 5.6 Поразрядные операторы в PHP 5.7 Строковые операторы в PHP 5.8 Оператор подавления ошибок в PHP 5.9 Операторы увеличения и уменьшения в PHP 5.10 Сокращенная запись присвоения переменных в PHP 5.11 Приоритетность и ассоциативность в PHP 5.12 Заключение к главе 5 6.1 Управляющие операторы PHP 6.2 Условный оператор IF 6.3 Условный оператор Elseif 6.4 Условный оператор Switch 6.5 Операторы цикла For 6.6 Оператор цикла While 6.7 Оператор цикла Do...while 6.8 Безусловный оператор Break 6.9 Безусловный оператор Continue 6.10 Безусловный оператор Exit 6.11 Require 6.12 Include 6.13 Заключение к главе 6 7.1 Функции в PHP 7.2 Определение функций в PHP 7.3 Аргументы функций в PHP 7.4 Область видимости переменных 7.5 Время жизни переменных в PHP 7.6 Рекурсия в PHP 7.7 Динамический вызов функций в PHP 7.8 Заключение к главе 7 8.1 Массивы в PHP 8.2 Присвоение значений массивов PHP 8.3 Функция array () PHP 8.4 Вывод PHP массивов 8.5 Обход массивов PHP. Функция count(), Конструкции foreach() 8.6 Функция reset() 8.7 each() 8.8 list() 8.9 Сложение массивов 8.10 Сравнение массивов 8.11 Добавление элементов массива 8.12 Удаление элементов массива 8.13 Сортировка массивов 8.14 Многомерные массивы 8.15 Преобразование в массив 8.16 Заключение к главе 8 9.1 Строка 9.2 Обработка переменных внутри строк 9.3 Вывод строк 9.4 Форматированный вывод строк 9.5 Длина строки в PHP 9.6 Поиск подстроки в строке 9.7 Чистка строк 9.8 Заключение к главе 9 10.1 Работа с HTML-формами 10.2 Передача данных HTML-формы. Метод GET и POST 10.3 Получение данных в PHP 10.4 Суперглобальные массивы $_GЕТ и $_POST 10.5 Заключение к главе 10 11.1 Открытие файлов в PHP 11.2 Закрытие файлов в PHP 11.3 Чтение и запись файлов в PHP 11.4 Копирование, удаление и переименование файлов в PHP 11.5 Получение информации о файлах в PHP 11.6 Файловый указатель в PHP 11.7 Открытие и закрытие каталогов в PHP 11.8 Чтение каталогов в PHP 11.9 Создание и удаление каталогов в PHP 11.10 Заключение к главе 11 12.1 Работа с базами данных MySQL в PHP 12.2 Соединение PHP с сервером базы данных MySQL 12.3 Создание и удаление базы данных MySQL 12.4 Создание и удаление таблиц MySQL 12.5 Работа с данными MySQL 12.6 Заключение к главе 12 13.1 Работа с изображениями в PHP. Библиотека GD 13.2 Создание и вывод изображений в PHP 13.3 Модификация изображений в PHP 13.4 Работа с текстом в PHP 13.5 Заключение к главе 13 14.1 Работа с датой и временем в PHP 14.2 Символы форматирования даты и времени в PHP 14.3 Функция date() и getdate() в PHP 14.4 Преобразования к абсолютному времени в PHP 14.5 Заключение к главе 14 15.1 Работа с регулярными выражениями в PHP 15.2 Регулярные выражения POSIX в PHP 15.3 Метасимволы в PHP 15.4 Классы символов 15.5 Квантификаторы 15.6 Замена по шаблону 15.7 Примеры регулярных выражений 15.8 Заключение к главе 15 16.1 Работа с Cookies в PHP 16.2 Создание Cookies в PHP 16.3 Чтение из Cookies 16.4 Удаление Cookies 16.5 Заключение к главе 16

В прошлой главе мы разбирали установку программного обеспечения, чтобы пользоваться программами, которые написаны на РНР. И дело осталось совсем за малым, вам нужно научиться разрабатывать эти программы. Прежде всего, вам нужно познакомиться с синтаксисом языка. Действительно, когда человек не знает слов и знаков препинания, то ему будет очень сложно составить предложения, и тем более крупный тест. Давайте приступим к изучению синтаксиса языка PHP .

Как было сказано в главе 1, скрипт на РНР - это простейший текст. И именно поэтому, когда вы его создаете, вы можете использовать простой редактор текста (к примеру, блокнот Windows). Мы не будем откладывать это дело в очень долгий ящик и начнем писать программу. По традиции, результатом ее работы будет сообщение «Hello, World!» в окне вашего браузера. Вам нужно открыть редактор текста, и ввести туда строки из листинга 3.1 и сохранить этот файл с расширением.php (к примеру, hello.php). Разместить файл в корень каталога вашего Web-сервера (в нашем случае это C:\Home_server\Apache2\htdocs\) и введите в строке браузера http://localhost/hello.php. Перед нажатием клавиши Enter, еще раз убедитесь, что процесс Apache загружен, это подтверждает иконка Apache Server Monitor, где размещены утилиты в нижнем углу с правой стороны монитора.

Листинг 3.1. Эта программа выводит сообщение.

‹?php
echo "Hello, World!";
?›

Результат программы смотрите на рисунке

А теперь приступим к детальному рассмотрению данной программы. Вам нужно обратить внимание на конструкцию ‹?php ... ?›, у нее очень большая схожесть с HTML-тегом. С её помощью выделяют PHP-код. Слово echo используют для того чтобы вывести строку, она размещена в кавычках сразу после него (мы рассмотрим эту команду позже). Символ точка с запятой (;) делает туже функцию, что точка в самом конце предложения.

Вам нужно выбрать в меню браузера (в нашем случае Internet Explorer) Вид пункт В виде HTML . И вам раскроется содержимое, все что есть на странице, в текстовом редакторе. Просьба заметить, что Web-сервер переслал обозревателю только строчку «Hello, World!». И только в этом состоит главная изюминка серверного программирования, потому что когда вызываются HTML-файлы, они будут пересылаться без изменений. В данном случае сначала будет выполнен РНР- код, ну а потом и результат будет отправлен браузеру.

Еще одно о синтаксисе языка PHP , вам не нужно забывать, что если код не будет заключен в специальный набор тегов ‹?php...?›, то он будет передан без обработки РНР (см. рисунок и листинг ниже).

Листинг 3.2. Программа в которой не использованы теги РНР

‹html›
‹head›
‹title›Текст вне тегов PHP‹/title›
‹/head›
‹body›
echo "Это не PHP-код";
‹br›
‹?php
echo "Hello, World!";
?›
‹br›
echo "Это не PHP-код";
‹/body›

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

Давайте вернемся к рассмотрению конструкций, обрамляющей PHP-код. Кроме известного тега ‹?php...?› бываю еще три разновидности:

  • ‹?...?›
  • ‹%...%›
  • ‹script language="php"›...‹/script›

Когда вы выбираете тот или иной вид конструкции, Вам нужно удостовериться о том, что настройки РНР позволяют их использовать. К примеру, малые теги ‹?...?› не всегда бывают включены по умолчанию (просмотрите значение параметра short_ open_tag и файла конфигурации php.ini), именно поэтому использовать их не рекомендуется. Конструкция ‹script language="php"›...‹/script› так же, как и ‹?php...?› всегда доступна, но из-за своей громоздкости она используется довольно редко. Тег ‹%...%› был использован в версии РНР 4.0.3. Работа его зависит от параметра asp_tags. В нашем самоучителе мы будем часто придерживаться тегов в виде ‹?php...?›.

Стоит сказать еще несколько слов о теге?>. В РНР его принимают как символ точка с запятой (;), именно поэтому в конце последней строчки можно его и не писать.

PHP поддерживает альтернативный синтаксис для некоторых управляющих конструкций, а именно для: if, switch, while, for и foreach . Основная форма альтернативного синтаксиса заключается в замене открывающей фигурной скобки на двоеточие (:), завершающая фигурная скобка заменяется на ключевое слово endif, endswitch, endwhile, endfor и endforeach , которое соответствует используемой конструкции.

if

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

Замечание : если для определения нескольких условий if/elseif используется альтернативный синтаксис, в этом случае можно использовать только elseif в одно слово, т.е. вы не должны разделять else if в два слова, так как это вызовет фатальную ошибку в PHP.

Смешивание двух видов синтаксиса в одной конструкции не поддерживается, это правило относится ко всем операторам указанных в этой главе.

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

switch while for

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

Дополнительные сведения

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

Приведем простой пример:

A равно 5

В приведенном примере, блок HTML-кода "A равно 5" вложен внутрь конструкции if написанной с альтернативным синтаксисом. HTML-блок будет показан только в том случае, если переменная $a будет равна 5 .

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

Рассмотрим примеры для других конструкций:

Значение равно 1.

Значение не известно.

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

A равно 5

A не равно 5

Синтаксис оператора foreach и его альтернативная запись будут рассмотрены позднее, а именно во время изучения массивов и объектов.

Позволяет организовывать выполнение фрагментов кода по условию.

Синтаксис:

If (выражение) statement

Может иметь неограниченную степень вложенности в другие IF.

If($a > $b) print "$a больше $b";

else

Расширяет возможности IF по части обработки вариантов выражения, когда оно равно FALSE.

Выражение ELSE выполняется только если IF равно FALSE.

If($a>$b) { echo "a больше b"; } else { echo "a не больше b"; }

elseif

Является комбинацией IF и ELSE. Позволяет выполнить выражение, если значение IF равно FALSE, но в отличии от ELSE оно выполниться, если выражение ELSEIF равно TRUE.

If ($a > $b) { echo "a больше b"; } elseif ($a == $b) { echo "a равно b"; } else { echo "a меньше b"; }

if ... endif

Один из возможных вариантов группирования операторов с оператором IF.

Удобно при внедрении больших блоков HTML-кода внутрь оператора IF.

If ($a == 1): echo "a равно 1"; elseif ($a == 2): echo "a равно 2"; else: echo "а не равно 1 и 2"; endif; A=5

Блок HTML-кода A=5 будет виден, если выполнется условие $a==5

while

Простейший тип цикла в PHP. Заставляет PHP выполнять вложенные операторы до тех пор, пока условие равно TRUE. Если условие равно FALSE с самого начала, то цикл не выполнится не разу.

Синтаксис:

WHILE(условие)выражения

Можно сгруппировать несколько операторов внутри фигурных скобок или использовать альтернативный синтаксис: WHILE(условие)выражения... ENDWHILE;