Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы по курсу СЭКрит к экзамену 2011.doc
Скачиваний:
28
Добавлен:
05.08.2019
Размер:
721 Кб
Скачать
☆
  1. Переменные и объекты языка php. Типы данных, используемых в скриптах. Фрагменты html в текстах рнр-программ.

Переменные в PHP представлены знаком dollar с последующим именем переменной. Имя переменной чувствительно к регистру символов.

Имена переменных следуют тем же правилам, что и другие метки в PHP. Правильное имя переменной начинается с буквы или символа подчёркивания, с последующими (в любом количестве) буквами, числами или символами подчёркивания.

Предопределённые переменные.

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

$GLOBALS. Содержит ссылку на каждую переменную, доступную в данный момент в глобальной области видимости данного скрипта. Ключами этого массива являются имена глобальных переменных. Ассоциативный массив, содержащий ссылки на все переменные, которые определены в данный момент в глобальной области видимости скрипта. Имена переменных являются ключами в массиве.

$_SERVER. Переменные, установленные web-сервером или как-либо иначе относящиеся к среде окружения выполнения текущего скрипта. $_SERVER это массив, содержащий такую информацию, как headers/шапки, paths/пути и размещение скриптов. Вхождения в этом массиве создаются web-сервером.

$_GET. Переменные, предоставляемые скрипту через HTTP GET. Ассоциативный массив переменных, передаваемых текущему скрипту через метод HTTP GET.

$_POST. Переменные, предоставляемые скрипту через HTTP POST. Ассоциативный массив переменных, передаваемых текущему скрипту через метод HTTP POST.

$_COOKIE. Переменные, предоставляемые скрипту через HTTP cookies. Ассоциативный массив переменных, передаваемых текущему скрипту через HTTP-куки.

$_FILES. Переменные, предоставляемые скрипту через HTTP post-загрузку файлов. Ассоциативный массив элементов, загружаемых в текущий скрипт методом HTTP POST.

$_ENV. Переменные, предоставляемые скрипту через среду окружения. Эти переменные импортируются в глобальное пространство имён PHP из окружения, в котором запущен разборщик (интерпретатор) PHP.

$_REQUEST. Переменные, предоставляемые скрипту через любой механизм пользовательского ввода. Ассоциативный массив, состоящий из содержимого $_GET, $_POST, $_COOKIE и $_FILES.

$_SESSION. Переменные, зарегистрированные на данный момент в сессии скрипта. Ассоциативный массив, содержащий переменные сессии, доступные текущему скрипту.

Переменные переменные.

Иногда удобно иметь переменные как имена переменных. То есть имена переменных, которые могут устанавливаться и использоваться динамически. Нормальная переменная устанавливается примерно таким оператором: $a = "hello";

Переменная переменная/variable variable принимает значение переменной и рассматривает его как имя переменной. В предыдущем примере, hello может использоваться как имя переменной с помощью двух знаков dollar. То есть: $$a = "world";

После этого в дереве символов РНР определены две переменные: $a с содержимым "hello" и $hello с содержимым "world". Следовательно, оператор echo "$a ${$a}"; даст тот же вывод, что и

echo "$a $hello";

то есть оба они дадут на выходе: hello world

Чтобы использовать переменные переменные с массивами, вы должны разрешить проблему неоднозначности. То есть, если вы записываете $$a[1], то разборщику необходимо знать, будете ли вы использовать $a[1] как переменную, или вы хотите использовать $$a как переменную, а затем как индекс [1] из этой переменной. Синтаксис для разрешения этой неоднозначности таков: ${$a[1]} для первого случая и ${$a}[1] - для второго.

Стоит отметить, что переменные переменные не могут использоваться с новыми суперглобалами РНР. Это значит, что вы не можете делать что-либо вроде ${$_GET}.

Объект представляет собой переменную, экземпляр которой создается по специальному шаблону, называемому классом. В отличие от других типов данных, поддерживаемых в языке РНР, объекты должны объявляться явно. Необходимо понимать, что объект — всего лишь конкретный экземпляр класса, используемого в качестве шаблона для создания объектов с конкретными характеристиками и функциональными возможностями. Следовательно, объявление класса должно предшествовать объявлению объектов, создаваемых на их основе.

PHP поддерживает восемь простых типов данных.

Четыре скалярных типа:

  • булев

  • целое

  • число с плавающей точкой

  • строка

Два смешанных типа:

  • массив

  • объект

И, наконец, два специальных типа:

  • ресурс

  • NULL

Булев (boolean). Это простейший тип. Он выражает истинность значения - это может быть либо TRUE, либо FALSE.

Чтобы определить булев тип, используйте ключевое слово TRUE или FALSE. Оба регистро-независимы.

$foo = True; // определить $foo как TRUE

Целые (integer). Целое это число из множества Z = {..., -2, -1, 0, 1, 2, ...}.

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

Числа с плавющей точкой (float). Числа с плавющей точкой (они же числа двойной точности или действительные числа) могут быть определены при помощи любого из следующих синтаксисов:

$a = 1.234; $a = 1.2e3; $a = 7E-10;

Размер целого зависит от платформы, хотя максимум, как правило, ~1.8e308 с точностью около 14 десятичных цифр (это 64-битный IEEE-формат).

Строки (string). Строка - это набор символов. В PHP символ это то же самое, что и байт, это значит, что возможно ровно 256 различных символов. Это также означает, что PHP не имеет встроенной поддержки Unicode'а.

Массивы (array). Массив в PHP это упорядоченная карта. Карта/map это тип, который отображает значения в ключи. Этот тип оптимизируется разными способами, поэтому вы можете использовать его как реальный массив или список (вектор), хэш-таблицу (которая является реализацией карты), словарь/dictionary, коллекцию/collection, стэк/stack, очередь/queue и, возможно, что-то ещё. Поскольку вы можете иметь другой PHP-массив в качестве значения, вы можете также довольно легко симулировать деревья/trees.

Массив может быть создан конструкцией языка array(). Она принимает определённое количество разделённых запятыми пар key => value (ключ-значение).

Объекты (object) см. выше

Ресурс (resource). Ресурс это специальная переменная, содержащая ссылку на внешний ресурс. Ресурсы создаются и используются с помощью специальных функций.

NULL. Специальное значение NULL представляет переменную, не имеющую значения. NULL это единственно возможное значение типа NULL. Нечувствительно к регистру.