Каждый оператор в PHP заканчивается разделителем «;». Операторы могут содержать переводы строк. В PHP используются простые операторы и составные. Составные операторы – это последовательность простых операторов заключенных в фигурные скобки. Составной оператор не оканчивается символом «;».
Листинг 1.2. Простые операторы
<?phpecho 5+5;echo "Hello, world";?>
Функция echo() применяется для вывода различной информации (текст, результат выполнения операции, теги HTML и т.д.) в браузер.
Листинг 1.3. Составной оператор
<?php{echo 5+5;echo "Hello, world";}?>
Для вывода информации можно использовать также функцию print().
Синтаксис:
print (string arg)
Выводит arg. Возвращает TRUE при успехе, FALSE при неудаче. print() это в действительности не функция, а конструкция языка, поэтому с ней не обязательно использовать скобки.
Листинг 1.4. Функция print()
<?phpprint("Hello, world");print "эта функция работает также без скобок.";?>
5. Комментарии
PHP предоставляет несколько методов для вставки комментариев. Комментарии PHP действуют только внутри тегов ограничителей PHP.
Листинг 1.5. Комментарии
<?phpecho 5+5; // это однострочный комментарийecho 5-2; # и это однострочный комментарийecho "Hello, world";/*а это многострочныйкомментарий*/?>
6. Переменные
В РНР имена переменных всегда начинаются с символа «$» и содержат произвольную комбинацию символов, при условии, что первый символ после «$» будет буквой или знаком подчеркивания. Переменные в PHP чувствительны к регистру.
Листинг 1.6. Примеры переменных в РНР
<?php$myvar = "foo"; // Присвоение строки 'foo' badvar = "test"; //Неверно, нет символа $$5php = "is wrong"; // Неверно, начинается с цифры ?>
7. Внешние переменные
Внешними переменными называются все переменные, которые поступают в программу из окружающего мира (предоставляются браузером и сервером). После того как запрос клиента проанализирован Web-сервером и передан PHP-интерпретатору, последний устанавливает ряд переменных, которые содержат данные, относящиеся к запросу.
Протокол HTTP, лежащий в основе Web, допускает передачу данных с помощью метода GET или POST. По умолчанию используется метод GET. Создадим html-форму (рис. 1) в файле index.php, которая будет состоять из одного текстового поля name и кнопки submit.
Рис 1. HTML-форма
Листинг 1.7. HTML-форма, передающая данные методом GET
<form method="GET"><input type="text" name="Т1"><input type="submit" name= "В1" value ="Send"></form>
Если ввести в текстовое поле Hello и нажать кнопку Send, в результате никаких видимых изменений не произойдет, но строка адреса в браузере примет вид показанный на рис.2:
Рис.2. Передача данных методом GET.
Так как исходный файл называется index.php, то его название в строке адреса опущено. Таким образом, через строку адреса передаются GET-параметры. Если в Интернете вы видите строку, содержащую знаки вопроса и амперсанда, то перед вами передача параметров методом GET. Знак вопроса «?» после имени файла обозначает начало передача переменных методом GET. После него следуют пары имя=значение, разделенные символом амперсанда «&». В представленной строке передано два параметра с именами T1 и B1 и значениями Hello и Send соответственно. Получить доступ к GET-параметрам можно через суперглобальный массив $_GET, указав в квадратных скобках после него имя параметра.
Изменим файл index.php, так чтобы данные введенные в поле выводились сразу после HTML-формы.
Листинг 1.8. Вывод GET-параметров
<form method="GET">
<input type="text" name="Т1">
<input type="submit" name= "В1" value ="Send">
</form>
<?php
echo $_GET['Т1'];
?>
Результат работы скрипта из листинга 1.8. представлен на рис.2.
Рис.2. Вывод GET-параметра Т1.
В рассмотренном примере HTML-форма и обработчик находятся в одном файле. Такой подход является удобным, когда форма и обработчик небольшие. В большинстве случаев удобно размещать обработчик HTML-формы в отдельно файле, для этого в тег <form> необходимо добавить атрибут action, который укажет имя обработчика формы. Пусть в качестве обработчика будет использоваться файл second.php.
Листинг 1.9. Использование атрибута action
<form method=GET action = second.php>
<input type=text name=T1 >
<input type=submit name= B1 value ="Send">
</form>
Создав файл second.php, можно добиться того, чтобы данные из формы отправлялись обработчику в файл second.php.
Листинг 1.10. Обработчик second.php
<?php
echo $_GET[‘T1’];
?>
Передача данных методом GET не всегда является удобной, т.к.:
· Пользователь может видеть значение параметров и легко подделывать их в строке запроса.
Объем передаваемой информации через GET-параметры ограничен (как правило 8 Кбайт).
GET-параметры передаются через НТТР-заголовки. Существует еще один способ передачи данных — передача через тело документа. Для этого предназначен метод POST. Чтобы передать данные из формы обработчику методом POST атрибуту method тега <form> необходимо присвоить значение POST.
Листинг 1.11. Передача данных методом POST
<form method=POST action = next.php >
<input type=text name=T1 >
<input type=submit name= B1 value ="Send">
</form>
Для получения POST параметров необходимо использовать суперглобальный массив $_POST.
Листинг 1.12. Обработчик next.php
<?php
echo $_POST['T1'];
?>
Результат работы скриптов из листингов 1.11 и 1.12 представлен на рис.3.
Как видно из рис. 3 в адресной строке уже нет никаких параметров, тем не менее, строка Hello выводится на странице.
Данные, передаваемые методом POST, также ограничены в объеме —8 Мбайт.
Рис.3. Передача данных методом POST.
8. Типы данных
PHP позволяет не заботится явно об определении типа переменной. С одной и той же переменной на протяжении программы можно работать как со строкой и как с числом. Однако в PHP существует набор основных типов данных, которые могут явно указываться при работе с переменными:
· integer,
· string,
· float (double, real),
· array,
· boolean,
· object.
Для того чтобы определить тот тип, который PHP назначил переменной, применяется функция gettype(). Ее единственным параметром является имя переменной.
9. Операция присваивания
Использование оператора присваивания «=» означает, что нужно присвоить значение операнда выражения из правой части операнду левой части.