Лабораторная работа №1: Введение в PHP
Лабораторная работа №1: Введение в PHP
Первая PHP-программа
Рассмотрим пример.
<html> <head> <title>Пример</title> </head> <body> <?php echo "<p>Привет, я – скрипт PHP!</p>"; ?></body></html>Пример 1. Простой html-файл со встроенным кодом на РНР
Это простой HTML-файл, в который встроен с помощью специальных тегов код, написанный на языке PHP.
PHP похож на Cи и Perl. Однако приведенная здесь программа сильно отличается от аналогичных по смыслу программ на языках Cи и Perl. Здесь не нужно писать кучу специальных команд для вывода HTML. Пишется непосредственно код на HTML, в который можно встраивать PHP -код, осуществляющий какие-либо действия (например, выводящий текст на экран, как в нашем примере). Недостатком PHP по сравнению с Cи и Perl, несмотря на все усилия разработчиков, все еще является недостаточная быстрота выполнения сложных скриптов.
PHP-скрипты – это программы, которые выполняются и обрабатываются сервером. Так что сравнивать его со скриптовыми языками типа JavaScript невозможно, потому что написанные на них скрипты выполняются на машине клиента. В чем отличие скриптов, выполняемых на сервере и на клиенте? Если скрипт обрабатывается сервером, клиенту посылаются только результаты работы скрипта . Например, если на сервере выполнялся скрипт, подобный приведенному выше, клиент получит сгенерированную HTML-страницу вида:
В этом случае клиент не знает, какой код выполняется. Можно даже сконфигурировать свой сервер таким образом, чтобы HTML-файлы обрабатывались процессором PHP, так что клиенты даже не смогут узнать, получают ли они обычный HTML-файл или результат выполнения скрипта. Если же скрипт обрабатывается клиентом (например, это программа на языке JavaScript), то клиент получает страницу, содержащую код скрипта.
Мы отмечали выше, что PHP - скрипты встраиваются в HTML-код. Возникает вопрос, каким образом? Есть несколько способов. Один из них приведен в самом первом примере – с помощью открывающего тега <?php и закрывающего тега ?> . Такого вида специальные теги позволяют переключаться между режимами HTML и PHP. Этот синтаксис наиболее предпочтителен, поскольку позволяет задействовать PHP в XML -совместимых программах (например, написанных на языке XHTML).
Когда PHP обрабатывает файл, он просто передает его текст, пока не встретит один из перечисленных специальных тегов, который сообщает ему о необходимости начать интерпретацию текста как кода PHP. Затем он выполняет весь найденный код до закрывающего тега, говорящего интерпретатору, что далее снова идет просто текст. Этот механизм позволяет внедрять PHP -код в HTML – все за пределами тегов PHP остается неизменным, тогда как внутри интерпретируется как код. Заметим также, что php-файл не похож на CGI-скрипт. Php файл не должен быть исполнимым или еще каким-либо образом помеченным.
Для того чтобы отправить php-файл на обработку серверу, нужно в строке браузера набрать путь к этому файлу на сервере. Скрипты php должны располагаться там, где разрешен доступ через www, например там же, где лежит домашняя страничка. Если php -файл лежит на локальной машине, то его можно обработать с помощью интерпретатора командной строки.
В качестве примера решим задачу создания заготовки электронного письма. Ее смысл заключается в следующем.
Допустим, у вас есть какое-то объявление и несколько разных людей, которым нужно это объявление отправить. Для этого вы делаете заготовку с содержанием объявления, внутри которого есть ряд изменяющихся (в зависимости от потенциального получателя) параметров.
Разделение инструкций
Программа на PHP (да и на любом другом языке программирования) – это набор команд (инструкций). Обработчику программы (парсеру) необходимо как-то отличать одну команду от другой. Для этого используются специальные символы – разделители. В PHP инструкции разделяются так же, как и в Cи или Perl, – каждое выражение заканчивается точкой с запятой.
Закрывающий тег " ?> " также подразумевает конец инструкции, поэтому перед ним точку с запятой не ставят. Например, следующие фрагменты кода эквивалентны:
<?phpecho "Hello, world!"; // точка с запятой // в конце команды // обязательна?><?phpecho "Hello, world!" ?><!-- точка с запятой опускается из-за "?>" -->Комментарии
Часто при написании программ возникает необходимость делать какие-либо комментарии к коду, которые никак не влияют на сам код, а только поясняют его. Это важно при создании больших программ и в случае, если несколько человек работают над одной программой. При наличии комментариев в программе в ее коде разобраться гораздо проще. Кроме того, если решать задачу по частям, недоделанные части решения также удобно комментировать, чтобы не забыть о них в дальнейшем. Во всех языках программирования предусмотрена возможность включать комментарии в код программы. PHP поддерживает несколько видов комментариев: в стиле Cи, C++ и оболочки Unix. Символы // и # обозначают начало однострочных комментариев, /* и */ – соответственно начало и конец многострочных комментариев.
<?phpecho "Меня зовут Вася"; // Это однострочный комментарий // в стиле С++echo "Фамилия моя Петров"; /* Это многострочный комментарий.Здесь можно написать несколько строк. При исполнении программы все, чтонаходится здесь (закомментировано),будет игнорировано. */echo "Я изучаю PHP в INTUIT.ru"; # Это комментарий в стиле # оболочки Unix?>
Пример 2. Использование комментариев в PHP
Переменные
Переменная в PHP обозначается знаком доллара, за которым следует ее имя. Например:
$my_varИмя переменной чувствительно к регистру, т.е. переменные $my_var и $My_var различны.
Имена переменных соответствуют тем же правилам, что и остальные наименования в PHP: правильное имя переменной должно начинаться с буквы или символа подчеркивания с последующими в любом количестве буквами, цифрами или символами подчеркивания.
В PHP 3 переменные всегда присваивались по значению. То есть когда вы присваиваете выражение переменной, все значения оригинального выражения копируются в эту переменную. Это означает, к примеру, что после присвоения одной переменной значения другой, изменение одной из них не влияет на значение другой.
<?php$first = ' Text '; // Присваиваем $first // значение // ' Text '$second = $first; // Присваиваем $second // значение // переменной $first$first = ' New text '; // Изменяем // значение // $first // на ' New text 'echo "Переменная с именем first равна " .$first <br>"; // выводим значение $firstecho "Переменная с именем second равна " .$second"; // выводим значение $second?>Пример 3. Присваивание по значению
Результат работы этого скрипта будет следующим:
Переменная с именем first равна New text Переменная с именем second равна TextPHP 4, кроме этого, предлагает еще один способ присвоения значений переменным: присвоение по ссылке. Для того, чтобы присвоить значение переменной по ссылке, это значение должно иметь имя, т.е. оно должно быть представлено какой-либо переменной. Чтобы указать, что значение одной переменной присваивается другой переменной по ссылке, нужно перед именем первой переменной поставить знак амперсанд &.
Рассмотрим тот же пример, что и выше, только будем присваивать значение переменной first переменной second по ссылке:
<?php$first = ' Text '; // Присваиваем $first // значение ' Text '$second = &$first; /* Делаем ссылку на $first через $second. Теперь значения этих переменных будут всегда совпадать */// Изменим значение $first// на ' New text '$first = ' New text ';echo "Переменная с именем first " . "равна .$first <br>"; // выведем значения обеих переменныхecho "Переменная с именем second " . "равна $second";?>Пример 4. Присваивание по ссылке
Этот скрипт выведет следующее:
Переменная с именем first равна New text.Переменная с именем second равна New text.То есть вместе с переменной $first изменилась и переменная $second.
Константы
Для хранения постоянных величин, т.е. таких величин, значение которых не меняется в ходе выполнения скрипта, используются константы. Такими величинами могут быть математические константы, пароли, пути к файлам и т.п. Основное отличие константы от переменной состоит в том, что ей нельзя присвоить значение больше одного раза и ее значение нельзя аннулировать после ее объявления. Кроме того, у константы нет приставки в виде знака доллара и ее нельзя определить простым присваиванием значения. Как же тогда можно определить константу? Для этого существует специальная функция define() . Ее синтаксис таков:
define("Имя_константы", "Значение_константы", [Нечувствительность_к_регистру])По умолчанию имена констант чувствительны к регистру. Для каждой константы это можно изменить, указав в качестве значения аргумента Нечувствительность_к_регистру значение True. Существует соглашение, по которому имена констант всегда пишутся в верхнем регистре.
Получить значение константы можно, указав ее имя. В отличие от переменных, не нужно предварять имя константы символом $. Кроме того, для получения значения константы можно использовать функцию constant() с именем константы в качестве параметра.
<?php// определяем константу // PASSWORDdefine("PASSWORD","qwerty"); // определяем регистронезависимую // константу PI со значением 3.14define("PI","3.14", True);// выведем значение константы PASSWORD, // т.е. qwerty echo (PASSWORD);// тоже выведет qwerty echo constant("PASSWORD");echo (password);/* выведет password и предупреждение, поскольку мы ввели регистрозависимую константу PASSWORD */echo pi; // выведет 3.14, поскольку константа PI // регистронезависима по определению?>Пример 5. Константы в PHP
Кроме констант, объявляемых пользователем, о которых мы только что рассказали, в PHP существует ряд констант, определяемых самим интерпретатором. Например, константа __FILE__ хранит имя файла программы (и путь к нему), которая выполняется в данный момент, __FUNCTION__ содержит имя функции, __CLASS__ – имя класса, PHP_VERSION – версия интерпретатора PHP. Полный список предопределенных констант можно получить, прочитав руководство по PHP.
Операторы
Операторы позволяют выполнять различные действия с переменными, константами и выражениями. Мы еще не упоминали о том, что такое выражение. Выражение можно определить как все, что угодно, что имеет значение. Переменные и константы – это основные и наиболее простые формы выражений. Существует множество операций (и соответствующих им операторов ), которые можно производить с выражениями. Рассмотрим некоторые из них подробнее.
Таблица 1. Арифметические операторы | |||
Обозначение | Название | Пример | |
+ | Сложение | $a + $b | |
- | Вычитание | $a - $b | |
* | Умножение | $a * $b | |
/ | Деление | $a / $b | |
% | Остаток от деления | $a % $b | |
Таблица 3. Строковые операторы | |||
Обозначение | Название | Пример | |
. | Конкатенация ( сложение строк ) | $c = $a . $b (это строка, состоящая из $a и $b ) | |
Таблица 4. Операторы присваивания | |||||
Обозначение | Название | Описание | Пример | ||
= | Присваивание | Переменной слева от оператора будет присвоено значение, полученное в результате выполнения каких-либо операций или переменной / константы с правой стороны | $a = ($b = 4) +5; ( $a будет равна 9, $b будет равна 4 ) | ||
+= | Сокращение. Прибавляет к переменной число и затем присваивает ей полученное значение | $a += 5; (эквивалентно $a = $a + 5; ) | |||
.= | Сокращенно обозначает комбинацию операций конкатенации и присваивания (сначала добавляется строка, потом полученная строка записывается в переменную ) | $b = "Привет ";$b .= "всем"; (эквивалентно $b = $b . "всем"; ) В результате: $b="Привет всем" | |||
Таблица 5. Логические операторы | |||||
Обозначение | Название | Описание | Пример | ||
and | И | $a и $b истинны ( True ) | $a and $b | ||
&& | И | $a && $b | |||
or | Или | Хотя бы одна из переменных $a или $b истинна (возможно, что и обе) | $a or $b | ||
|| | Или | $a || $b | |||
xor | Исключающее или | Одна из переменных истинна. Случай, когда они обе истинны, исключается | $a xor $b | ||
! | Инверсия (NOT) | Если $a=True, то !$a=False и наоборот | ! $a | ||
Таблица 6. Операторы сравнения | ||||||
Обозначение | Название | Описание | Пример | |||
== | Равенство | Значения переменных равны | $a == $b | |||
=== | Эквивалентность | Равны значения и типы переменных | $a === $b | |||
!= | Неравенство | Значения переменных не равны | $a != $b | |||
<> | Неравенство | $a <> $b | ||||
!== | Неэквивалентность | Переменные не эквивалентны | $a !== $b | |||
< | Меньше | $a < $b | ||||
> | Больше | $a > $b | ||||
<= | Меньше или равно | $a <= $b | ||||
>= | Больше или равно | $a >= $b | ||||
Таблица 7. Операторы инкремента и декремента | ||||||
Обозначение | Название | Описание | Пример | |||
++$a | Пре- инкремент | Увеличивает $a на единицу и возвращает $a | <?$a=4;echo "Должно быть 4:" .$a++;echo "Должно быть 5:" .++$a;?> | |||
$a++ | Пост- инкремент | Возвращает $a, затем увеличивает $a на единицу | ||||
--$a | Пре- декремент | Уменьшает $a на единицу и возвращает $a | ||||
$a-- | Пост- декремент | Возвращает $a, затем уменьшает $a на единицу | ||||
Типы данных
PHP поддерживает восемь простых типов данных.
Четыре скалярных типа:
- boolean (логический) ;
- integer (целый) ;
- float (с плавающей точкой) ;
- string (строковый).
Два смешанных типа:
- array (массив) ;
- object (объект).
И два специальных типа:
- resource (ресурс) ;
- NULL.
В PHP не принято явное объявление типов переменных. Предпочтительнее, чтобы это делал сам интерпретатор во время выполнения программы в зависимости от контекста, в котором используется переменная. Рассмотрим по порядку все перечисленные типы данных.
Тип integer (целые)
Этот тип задает число из множества целых чисел Z = {..., -2, -1, 0, 1, 2, ...}. Целые могут быть указаны в десятичной, шестнадцатеричной или восьмеричной системе счисления, по желанию с предшествующим знаком " - " или " + ".
Если вы используете восьмеричную систему счисления, вы должны предварить число 0 (нулем), для использования шестнадцатеричной системы нужно поставить перед числом 0x.
<?php# десятичное число$a = 1234;# отрицательное число $a = -123;# восьмеричное число (эквивалентно# 83 в десятичной системе) $a = 0123;# шестнадцатеричное число (эквивалентно# 26 в десятичной системе)$a = 0x1A;?>Размер целого зависит от платформы, хотя, как правило, максимальное значение около двух миллиардов (это 32-битное знаковое). Беззнаковые целые PHP не поддерживает.
Если вы определите число, превышающее пределы целого типа, оно будет интерпретировано как число с плавающей точкой. Также если вы используете оператор, результатом работы которого будет число, превышающее пределы целого, вместо него будет возвращено число с плавающей точкой.
В PHP не существует оператора деления целых. Результатом 1/2 будет число с плавающей точкой 0.5. Вы можете привести значение к целому, что всегда округляет его в меньшую сторону, либо использовать функцию round(), округляющую значение по стандартным правилам. Для преобразования переменной к конкретному типу нужно перед переменной указать в скобках нужный тип. Например, для преобразования переменной $a=0.5 к целому типу необходимо написать (integer)(0.5) или (integer) $a или использовать сокращенную запись (int)(0.5). Возможность явного приведения типов по такому принципу существует для всех типов данных (конечно, не всегда значение одного типа можно перевести в другой тип ). Мы не будем углубляться во все тонкости приведения типов, поскольку PHP делает это автоматически в зависимости от контекста.
Тип string (строки)
Строка – это набор символов. В PHP символ – это то же самое, что байт, это значит, что существует ровно 256 различных символов. Это также означает, что PHP не имеет встроенной поддержки Unicode. В PHP практически не существует ограничений на размер строк, поэтому нет абсолютно никаких причин беспокоиться об их длине.
Строка в PHP может быть определена тремя различными способами:
- с помощью одинарных кавычек ;
- с помощью двойных кавычек ;
- heredoc-синтаксисом.
Одинарные кавычки
Простейший способ определить строку – это заключить ее в одинарные кавычки " ' ". Чтобы использовать одинарную кавычку внутри строки, как и во многих других языках, перед ней необходимо поставить символ обратной косой черты " \ ", т. е. экранировать ее. Если обратная косая черта должна идти перед одинарной кавычкой либо быть в конце строки, необходимо продублировать ее " \\' ".
Если внутри строки, заключенной в одинарные кавычки, обратный слэш " \ " встречается перед любым другим символом (отличным от " \ " и " ' " ), то он рассматривается как обычный символ и выводится, как и все остальные. Поэтому обратную косую черту необходимо экранировать, только если она находится в конце строки, перед закрывающей кавычкой.
В PHP существует ряд комбинаций символов, начинающихся с символа обратной косой черты. Их называют управляющими последовательностями, и они имеют специальные значения, о которых мы расскажем немного позднее. Так вот, в отличие от двух других синтаксисов, переменные и управляющие последовательности для специальных символов, встречающиеся в строках, заключенных в одинарные кавычки, не обрабатываются .
<?phpecho 'Также вы можете вставлять в строки символ новой строки таким образом, поскольку это нормально'; // Выведет: Чтобы вывести ' надо// перед ней поставить \echo 'Чтобы вывести \' надо перед ' . 'ней поставить \\';// Выведет: Вы хотите удалить C:\*.*?echo 'Вы хотите удалить C:\\*.*?';// Выведет: Это не вставит: \n новую строкуecho 'Это не вставит: \n новую строку';// Выведет: Переменные $expand также// $either не подставляютсяecho 'Переменные $expand также $either' . 'не подставляются';?>Пример 7. Использование управляющих последовательностей
Двойные кавычки
Если строка заключена в двойные кавычки " " ", PHP распознает большее количество управляющих последовательностей для специальных символов.
Таблица 8. Управляющие последовательности | |
Последовательность | Значение |
\n | Новая строка ( LF или 0x0A (10) в ASCII) |
\r | Возврат каретки ( CR или 0x0D (13) в ASCII) |
\t | Горизонтальная табуляция ( HT или 0x09 (9) в ASCII) |
\\ | Обратная косая черта |
\$ | Знак доллара |
\" | Двойная кавычка |
Повторяем, если вы захотите экранировать любой другой символ, обратная косая черта также будет напечатана!
Самым важным свойством строк в двойных кавычках является обработка переменных.
Heredoc
Другой способ определения строк – это использование heredoc-синтаксиса. В этом случае строка должна начинаться с символа <<<, после которого идет идентификатор. Заканчивается строка этим же идентификатором. Закрывающий идентификатор должен начинаться в первом столбце строки. Кроме того, идентификатор должен соответствовать тем же правилам именования, что и все остальные метки в PHP: содержать только буквенно-цифровые символы и знак подчеркивания и начинаться не с цифры или знака подчеркивания.
Heredoc -текст ведет себя так же, как и строка в двойных кавычках, при этом их не имея. Это означает, что вам нет необходимости экранировать кавычки в heredoc, но вы по-прежнему можете использовать перечисленные выше управляющие последовательности. Переменные внутри heredoc тоже обрабатываются.
<?php$str = <<<EODПример строки, охватывающей несколькострочек, с использованиемheredoc-синтаксисаEOD;// Здесь идентификатор – EOD. Ниже// идентификатор EOD$name = 'Вася';echo <<<EODМеня зовут "$name". EOD;// это выведет: Меня зовут "Вася".?>Пример 8. Использование heredoc-синтаксиса
Замечание: Поддержка heredoc была добавлена в PHP 4.
Тип array (массив)
Массив в PHP представляет собой упорядоченную карту – тип, который преобразует значения в ключи. Этот тип оптимизирован в нескольких направлениях, поэтому вы можете использовать его как собственно массив, список (вектор), хеш-таблицу (являющуюся реализацией карты), стек, очередь и т.д. Поскольку вы можете иметь в качестве значения другой массив PHP, можно также легко эмулировать деревья.
Определить массив можно с помощью конструкции array () или непосредственно задавая значения его элементам.
Тип object (объекты)
Объекты – тип данных, пришедший из объектно-ориентированного программирования (ООП). Согласно принципам ООП, класс – это набор объектов, обладающих определенными свойствами и методами работы с ним, а объект соответственно – экземпляр класса. Например, программисты – это класс людей, которые пишут программы, изучают компьютерную литературу и, кроме того, как все люди, имеют имя и фамилию. Теперь, если взять одного конкретного программиста, Васю Иванова, то можно сказать, что он является объектом класса программистов, обладает теми же свойствами, что и другие программисты, тоже имеет имя, пишет программы и т.п.
В PHP для доступа к методам объекта используется оператор ->. Для инициализации объекта используется выражение new, создающее в переменной экземпляр объекта.
<?php//создаем класс людейclass Person{// метод, который обучает человека PHP function know_php() { echo "Теперь я знаю PHP"; } }$bob = new Person; // создаем объект // класса человек$bob -> know_php(); // обучаем его PHP?>Пример 12. Объекты в PHP
Более подробно реализацию принципов ООП в языке PHP мы рассмотрим в следующих лекциях.
Тип resource (ресурсы)
Ресурс – это специальная переменная, содержащая ссылку на внешний ресурс (например, соединение с базой данных). Ресурсы создаются и используются специальными функциями (например, mysql_connect(), pdf_new() и т.п.).
Тип Null
Специальное значение NULL говорит о том, что переменная не имеет значения.
Переменная считается NULL, если:
- ей была присвоена константа NULL ( $var = NULL );
- ей еще не было присвоено какое-либо значение;
- она была удалена с помощью unset ().
Существует только одно значение типа NULL – регистронезависимое ключевое слово NULL.
Решение задачи
Теперь вернемся к задаче, которую мы поставили в самом начале лекции. Напомним, что она состояла в составлении письма разным людям по поводу разных событий. Попытаемся использовать для решения этой задачи изученные средства – переменные, операторы, константы, строки и массивы. В зависимости от получателя изменяется событие и обращение, указанные в письме, поэтому естественно вынести эти величины в переменные. Более того, поскольку событий и людей много, удобно использовать переменные типа массив. Подпись в письме остается постоянной всегда, поэтому логично задать ее как константу. Чтобы не писать слишком длинные и громоздкие строки, используем оператор конкатенации. Итак, вот что получилось:
<?// пусть наша подпись // будет константойdefine("SIGN","С уважением, Вася"); // зададим массивы людей и событий$names = array("Иван Иванович", "Петр Петрович", "Семен Семенович");$events = array( "f" => "день открытых дверей", "o" => "открытие выставки", "p" => "бал выпускников"); // составим текст приглашения$str = "Уважаемый (ая), $names[0].";$str .= "<br>Приглашаем Вас на ". $events["f"];$str .= "<br>" . SIGN;echo $str; // выведем текст на экран?>Дополнительное задание:
Составьте код своего письма, используя числовые, строчные типы данных, а также ассоциативные массивы и константы. Загрузите скрипт в корневую директорию веб-сервера и проверьте его работоспособность.
Критерии оценивания:
3: предоставлен отчет по всем примерам лабораторной работы с кодом и индивидуальными скриншотами выполнения скриптов.
4-5: выполнено дополнительное задание, в отчете представлена блок-схема алгоритма и скриншоты этого задания
Лабораторная работа №1: Введение в PHP
Первая PHP-программа
Рассмотрим пример.
<html> <head> <title>Пример</title> </head> <body> <?php echo "<p>Привет, я – скрипт PHP!</p>"; ?></body></html>Пример 1. Простой html-файл со встроенным кодом на РНР
Это простой HTML-файл, в который встроен с помощью специальных тегов код, написанный на языке PHP.
PHP похож на Cи и Perl. Однако приведенная здесь программа сильно отличается от аналогичных по смыслу программ на языках Cи и Perl. Здесь не нужно писать кучу специальных команд для вывода HTML. Пишется непосредственно код на HTML, в который можно встраивать PHP -код, осуществляющий какие-либо действия (например, выводящий текст на экран, как в нашем примере). Недостатком PHP по сравнению с Cи и Perl, несмотря на все усилия разработчиков, все еще является недостаточная быстрота выполнения сложных скриптов.
PHP-скрипты – это программы, которые выполняются и обрабатываются сервером. Так что сравнивать его со скриптовыми языками типа JavaScript невозможно, потому что написанные на них скрипты выполняются на машине клиента. В чем отличие скриптов, выполняемых на сервере и на клиенте? Если скрипт обрабатывается сервером, клиенту посылаются только результаты работы скрипта . Например, если на сервере выполнялся скрипт, подобный приведенному выше, клиент получит сгенерированную HTML-страницу вида:
<html> <head> <title>Пример</title> </head> <body> <p>Привет, я – скрипт PHP!</p> </body></html>В этом случае клиент не знает, какой код выполняется. Можно даже сконфигурировать свой сервер таким образом, чтобы HTML-файлы обрабатывались процессором PHP, так что клиенты даже не смогут узнать, получают ли они обычный HTML-файл или результат выполнения скрипта. Если же скрипт обрабатывается клиентом (например, это программа на языке JavaScript), то клиент получает страницу, содержащую код скрипта.
Мы отмечали выше, что PHP - скрипты встраиваются в HTML-код. Возникает вопрос, каким образом? Есть несколько способов. Один из них приведен в самом первом примере – с помощью открывающего тега <?php и закрывающего тега ?> . Такого вида специальные теги позволяют переключаться между режимами HTML и PHP. Этот синтаксис наиболее предпочтителен, поскольку позволяет задействовать PHP в XML -совместимых программах (например, написанных на языке XHTML).
Когда PHP обрабатывает файл, он просто передает его текст, пока не встретит один из перечисленных специальных тегов, который сообщает ему о необходимости начать интерпретацию текста как кода PHP. Затем он выполняет весь найденный код до закрывающего тега, говорящего интерпретатору, что далее снова идет просто текст. Этот механизм позволяет внедрять PHP -код в HTML – все за пределами тегов PHP остается неизменным, тогда как внутри интерпретируется как код. Заметим также, что php-файл не похож на CGI-скрипт. Php файл не должен быть исполнимым или еще каким-либо образом помеченным.
Для того чтобы отправить php-файл на обработку серверу, нужно в строке браузера набрать путь к этому файлу на сервере. Скрипты php должны располагаться там, где разрешен доступ через www, например там же, где лежит домашняя страничка. Если php -файл лежит на локальной машине, то его можно обработать с помощью интерпретатора командной строки.
В качестве примера решим задачу создания заготовки электронного письма. Ее смысл заключается в следующем.
Допустим, у вас есть какое-то объявление и несколько разных людей, которым нужно это объявление отправить. Для этого вы делаете заготовку с содержанием объявления, внутри которого есть ряд изменяющихся (в зависимости от потенциального получателя) параметров.
Разделение инструкций
Программа на PHP (да и на любом другом языке программирования) – это набор команд (инструкций). Обработчику программы (парсеру) необходимо как-то отличать одну команду от другой. Для этого используются специальные символы – разделители. В PHP инструкции разделяются так же, как и в Cи или Perl, – каждое выражение заканчивается точкой с запятой.
Закрывающий тег " ?> " также подразумевает конец инструкции, поэтому перед ним точку с запятой не ставят. Например, следующие фрагменты кода эквивалентны:
<?phpecho "Hello, world!"; // точка с запятой // в конце команды // обязательна?><?phpecho "Hello, world!" ?><!-- точка с запятой опускается из-за "?>" -->Комментарии
Часто при написании программ возникает необходимость делать какие-либо комментарии к коду, которые никак не влияют на сам код, а только поясняют его. Это важно при создании больших программ и в случае, если несколько человек работают над одной программой. При наличии комментариев в программе в ее коде разобраться гораздо проще. Кроме того, если решать задачу по частям, недоделанные части решения также удобно комментировать, чтобы не забыть о них в дальнейшем. Во всех языках программирования предусмотрена возможность включать комментарии в код программы. PHP поддерживает несколько видов комментариев: в стиле Cи, C++ и оболочки Unix. Символы // и # обозначают начало однострочных комментариев, /* и */ – соответственно начало и конец многострочных комментариев.
<?phpecho "Меня зовут Вася"; // Это однострочный комментарий // в стиле С++echo "Фамилия моя Петров"; /* Это многострочный комментарий.Здесь можно написать несколько строк. При исполнении программы все, чтонаходится здесь (закомментировано),будет игнорировано. */echo "Я изучаю PHP в INTUIT.ru"; # Это комментарий в стиле # оболочки Unix?>Пример 2. Использование комментариев в PHP