Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции.rtf
Скачиваний:
115
Добавлен:
15.06.2014
Размер:
24.67 Mб
Скачать

5.1.8 Типы переменных

Тип переменной связан с видом хранящихся в ней данных.

РНР поддерживает следующие типы данных:

• Integer (целый) — Используется для целых чисел

• Double (двойной точности) — Используется для действительных чисел

• String (строковый) — Используется для строк символов

• Array (массив) — Используется для хранения нескольких элементов данных одного типа

• Object (объект) — Используется для хранения экземпляров классов.

РНР поддерживает также типы pdfdoc и pdfinfo, если он был установлен с поддержкой PDF (Portable Document Format — формат переносимых документов).

Преимущества типов

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

Например, при создании переменных Stotalqty и Stotalamount их начальные типы были определены следующим образом:

$totalqty = 0;

$totalamount = 0.00;

Поскольку переменной Stotalqty было присвоено целочисленное значение 0, эта переменная имеет тип integer. Аналогично, переменная Stotalamount имеет тип double. Как ни странно, в сценарий вполне можно было бы добавить следующую строку:

$totalamount = "Hello";

В этом случае переменная Stotalamount получила бы тип string. PHP в любой момент времени изменяет тип переменной в соответствии с данными, хранящимися в ней.

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

5.1.9 Приведение типов

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

$totalqty = 0;

$totalamount = (double)$totalqty;

Вторая строка означает "Взять значение, хранящееся в переменой Stotalqty, интерпретировать как значение типа double и сохранить в переменной Stotalamount". Переменная Stotalamount будет иметь тип double. Приведение типов не изменяет типы, поэтому типом переменной Stotalqty остается integer.

5.1.10 Переменные переменных

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

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

$varname = "tireqty";

Затем вместо Stireqty можно использовать $$varname, например, так:

$$varname = 5;

Для решения коллизий, связанных с этим, необходимо использовать, где это нужно, фигурные скобки. Например, запись $$var[0] неоднозначно указывает, что является именем переменной, толи элемент массива $var[0], толи массивом является $$var. В первом случае необходимо было записать ${$var[0]}, а во втором ${$var}[0]

Соседние файлы в предмете Программирование для Web