Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Массивы

Читайте также:
  1. Массивы
  2. Массивы как аргументы функций. Функция сортировки массива методом пузырька.
  3. Несогласные интрузивные массивы
  4. Одномерные массивы
  5. Статические массивы
  6. Указатели и массивы. Адресная арифметика.

Лекция

Элементы и выражения PHP

План

1. Переменные

2. Константы

3. Типы данных. Преобразование типов

4. Массивы

5. Операции и операторы

6. Средства вывода информации

 

Переменные

В РНР переменные начинаются со знака доллара ($). За этим знаком может следовать любое количество буквенно-цифровых символов и символов подчеркивания, но первый символ не может быть цифрой или подчеркиванием. Следует также помнить, что имена переменных в РНР чувствительны к регистру, в отличие от ключевых слов.

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

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

После того, как запрос клиента проанализирован веб-сервером и передан РНР машине, последняя устанавливает ряд переменных, которые содержат данные, относящиеся к запросу и доступны все время его выполнения. Сначала РНР берет переменные окружения системы и создает переменные с теми же именами и значениями в окружении сценария РНР для того чтобы сценариям, расположенным на сервере были доступны особенности системы клиента. Эти переменные помещаются в ассоциативный массив $HTTP_ENV_VARS.

Затем РНР создает группу GET-переменных, которые создаются при анализе строки запроса. Строка запроса хранится в переменной $QUERY_STRING и представляет собой информацию, следующую за символом "?" в запрошенном URL.

Константы

Константы объявляются в РНР при помощи функции define():

define(CONSTANT, value)

Первый параметр этой функции – имя константы, второй – её значение. При использовании константы на неё ссылаются по имени:

Lt;?

define (CONSTANT1,15);

define (CONSTANT2,"\x20"); // код пробела

define (CONSTANT3,"Hello");

echo (CONSTANT1);

echo (CONSTANT2);

echo (CONSTANT3);

?>

По традиции имена констант пишут буквами верхнего регистра.

Существует функция defined(), которая проверяет, определена ли константа:

Типы данных. Преобразование типов

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

Однако, несмотря на это в РНР существуют набор основных типов данных, которые могут явно указываться при работе с переменными:

· integer;

· string;

· boolean;

· double;

· array;

· object;

Есть функция gettype(), возвращающая тип, который РНР назначил переменной:

Lt;?

$var = "5";

$var1 = 5;

echo (gettype ($var));

echo "<br>";

echo (gettype ($var1));

?>

В первом случае РНР вернет string, во втором integer.

Функция settype(), явно устанавливает тип:

Lt;?

$var = " 5 ";

echo (gettype ($var));

settype ($var,integer);

echo "<br>";

echo (gettype ($var));

?>

Кроме функции settype() преобразование типов в РНР можно осуществлять при помощи операторов преобразования типов. Преобразование типов осуществляется путем указания перед переменной ее нового типа, взятого в скобки:

$var = (int) $var;

 

Массивы

Массивы в языке РНР отличаются от аналогичных конструкций любого другого языка программирования. Их лучше всего рассматривать как комбинацию традиционного массива и хэш-таблицы Perl. Это делает их чрезвычайно гибкой встроенной структурой данных. Отдельные элементы массива аналогичны элементам хэш-таблицы языка Perl: каждый из них представляет собой пару "ключ-значение". Если логическая структура массива РНР аналогична массиву в любом другом языке, то соответствующие ключи являются простыми положительными числами. Эти числа всегда расположены по возрастанию. Если же логическая структура массива РНР аналогична хэш-таблице Perl, то ключи представляют собой строки, а порядок элементов массива определяется с использованием хэширующей функции. Интересен тот факт, что в состав массива одновременно могут входить элементы как с целочисленными ключами, так и со строковыми.

В языке РНР массив можно создать двумя способами. Для создания скалярных переменных используется операция присваивания. Присваивание значения элементу массива, который до этого еще не существовал, приведет к созданию этого массива. Например, $mass[0] = 5;

Примечание. Обратите внимание на то, что, их имена начинаются с символа доллара ($), как и любая другая переменная РНР. Поэтому если в сценарии до выполнения присваивания уже существовала скалярная переменная $mass, то после выполнения этой операции она будет преобразована в массив.

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

$mass[l] = "Today is my birthday!";

$mass[] = 50;

Второй способ создания массива заключается в использовании оператора array. Параметры этого оператора задают значения, которые будут размещены в новом массиве, а при необходимости – соответствующие ключи. Если массив планируется использовать традиционным способом (т.е. без ключей), то в операторе array можно задать только значения. (При этом интерпретатор РНР автоматически присвоит ключам целые значения.) Например, $mass = array(10, 20, 30, 40);

При таком присваивании будет создан обычный массив с четырьмя элементами и ключами 0, 1, 2 и 3. Если нужно указать другие ключи, то это можно осуществить следующим образом.

$mass = array(1 => 10, 2 => 20, 3 => 30, 4 => 40);

Если при создании массива с использованием оператора array не указаны параметры, будет создан пустой массив.

$mass = array();

В следующей строке создается массив, который в точности будет соответствовать хэш-таблице Perl.

$ages = array("Иван" => 40, "Маша" => 17, "Саша" => 25);

Массивы могут возвращаться некоторыми функциями. В частности, функциями, которые предназначены для доступа к базам данных.

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

$auto = array("make" => "ВАЗ", "model" => 2110, "year" => 1996, 3 => "sold");

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

Например, значение элемента массива $ages с ключом "Магу" можно получить следующим образом. print ("Mary is $ages['Маша'] years old <br />");

Значения нескольких элементов массива можно присвоить скалярным переменным в одном операторе. Например, так.

$trees = array("oak", "pine", "binary");

$ list ($hardwood, $softwood, $data_structure) = $trees;

С использованием встроенных функций РНР из массива можно извлечь отдельно набор ключей и набор значений.

Функция array_keys получает массив, а возвращает массив ключей. При этом ключами результирующего массива являются числа 0, 1 и т.д.

Функция array_values позволяет получить аналогичный массив со значениями массива.

Например,

$mass = array("one" => 74, "two" => 70, "three" => 67, "four" => 62, "five" => 65);

$numbers = array_keys($mass);

$values = array_values($mass);

 


Дата добавления: 2015-07-08; просмотров: 164 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Нижняя часть костюма.| Операции и операторы

mybiblioteka.su - 2015-2024 год. (0.009 сек.)