Идентификаторы представляют собой имена переменных. Использование идентификаторов регламентируется следующими правилами:
В добавление к переменным, передаваемым из HTML-формы, вы можете объявлять и использовать собственные переменные.
Одна из особенностей РНР заключается в том, что переменные не обязательно объявлять до того, как вы будите ими пользоваться. Переменная создается в момент первого присвоения ей значения.
Значения переменным присваиваются с помощью операции присваивания =. На сайте компании АВС необходимо подсчитать общее количество единиц товара и общую сумму оплаты. Для хранения этих чисел имеет смысл создать две переменные. Для начала они инициализируются нулевыми значениями.
Добавим следующие строки в нижнюю часть нашего РНР-сценария:
$totalqty = 0;
$totalamount = 0.00;
Каждая из двух приведенных строк создает переменную и присваивает ей литеральное значение. Переменным можно присваивать также значения других переменных:
$totalqty = 0;
$totalqty = $totalamount;
Тип переменной характеризуется видом хранящихся в ней данных. Различные данные могут храниться в переменных различных типов.
РНР поддерживает следующие базовые типы данных:
Доступны также и два специальных типа — NULL и resource (ресурс). Переменные, которым не присвоено значения, которые не определены или принимают значение NULL, относятся к типу NULL. Некоторые встроенные функции (такие как функции работы с базами данных) возвращают переменные ресурсного типа. Такие переменные представляют внешние ресурсы.
РНР поддерживает также типы pdfdoc и pdfinfo, если установлена поддержка обработки PDF-документов.
Язык РНР является весьма слабо типизированным. В РНР тип переменной определяется типом присвоенного ей значения.
Например при создании переменных $totalqty и $totalamount их начальные типы были определены следующим образом:
$totalqty = 0;
$totalamount = 0.00;
Поскольку переменной $totalqty было присвоено целочисленное значение 0, эта переменная теперь имеет тип Integeкю Аналогично, переменная $totalamount имеет тип Float.
В сценарий можно поместить и такую строку:
$totalamount = 'Добро пожаловать!';
Теперь переменная имеет тип String. РНР в любой момент времени изменяет тип переменной в соответствии с хранящимися в ней данными.
С помощью механизма приведения типов можно переводить переменную или конкретное значение в другой тип. Для этого достаточно перед переменной, тип которой вы хотите преобразовать, поместить в круглых скобках временный тип.
Например:
$totalqty = 0;
$totalamount = (float) $totalqty;
Вторая строка означает "Взять значение, хранящееся в переменной $totalqty, интерпретировать его как значение типа float и сохранить в переменной $totalamoun". Переменная $totalamoun получит тип float . Приведение типа не меняет тип исходной переменной, поэтому типом переменной $totalqty остается Integer.
РНР предоставляет в распоряжение разработчиков еще один тип переменных — так называемые переменные переменных. Переменные переменных позволяют динамически менять имена переменных.
В основу этой возможности положена идея использования значения одной переменной в качестве имени другой.
Например:
$varname = "filtr";
Затем вместо $filtr можно использовать $$varname, например:
$$varname = 4;
Это эквивалентно:
$filtr = 4;
Данная особенность может показаться несколько запутанной. Позже мы вернемся к практическому использованию этой возможности.