- Объекты, Логические величины, Идентификаторы
Печать: Шрифт: Абв Абв Абв
admin 24 Февраля 2006 в 23:32:19
Объекты

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

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

<?
class appliance {

var
power:

function
set_power($on_off) {

$this->power = $on_off;

}

}

...

$blender = new appliance;
?>


Определение класса задает атрибуты и функции, связанные с некоторой структурой данных — в данном примере это структура с именем appliance (устройство). У этой структуры имеется всего один атрибут power (мощность). Для изменения этого атрибута создается метод set_power.

Помните: определение класса — всего лишь шаблон, и выполнять операции с ним в программе невозможно; сначала нужно создать объекты на основе этого шаблона. Объекты создаются при помощи ключевого слова new. Например, в приведенном выше фрагменте создается объект $blender класса appliance.

После создания объекта $blender можно задать его мощность при помощи метода

<? set_power: $blender->set_power("on");?>


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

Логические величины (истина/ложь)

Логический тип данных принимает всего два значения: истинное (true) и ложное (false). Логические величины создаются двумя способами: при проверке условий и в виде значений переменных. Обе ситуации достаточно просты.

Сравнения существуют в нескольких формах. Чаще всего они встречаются при использовании оператора = в условной команде if. Пример:
<?
if ($sum == 40) :

...
?>

Результатом проверки является либо истина, либо ложь: переменная $sum либо равна 40, либо не равна. Если переменная $sum равна 40, проверка дает истинный результат. В противном случае результат равен false.

Логические величины также могут определяться явным присваиванием переменной истинного или ложного значения. Пример:

<?
$flag
= TRUE;
if (
$flag == TRUE) :
print
"The flag is true!";
else :
print
"The flag is false!";
endif;
?>

Если переменная $flag истинна, выводится первое сообщение, а если ложна — второе сообщение.

Возможен и другой вариант — представление истинных и ложных логических величин в виде значений 1 и 0 соответственно. В этом случае предыдущий пример выглядит так:
<?
$flag
= 1;
if (
$flag == TRUE) ;
print
"The flag is true!";
else :
print
"The flag is false!";
endif;
//Наконец, существует еще один способ:
$flag = TRUE:
// При выполнении этой команды косвенно
// проверяется условие "if ($flag == TRUE)"
if ($flag) :
print
"The flag is true!";
else :
print
"The flag is false!";
endif:
?>


Идентификаторы

Общий термин идентификатор применяется к переменным, функциям и другим объектам, определяемым пользователем. Идентификаторы РНР должны удовлетворять нескольким условиям:

Идентификатор состоит из одного или нескольких символов и начинается с буквы или символа подчеркивания. Идентификатор может содержать только буквы, цифры, символы подчеркивания и другие ASCII-символы с кодами от 127 до 255. Примеры:

Допустимые идентификаторыНедопустимые идентификаторы
my_functionThis&that
Size !counter
_someword4ward


В идентификаторах учитывается регистр символов. Следовательно, переменная с именем $recipe отличается от переменных с именами $Recipe, $rEciPe и $recipE.

Длина идентификаторов не ограничивается. Это удобно, поскольку программист может точно описать смысл идентификатора в его имени.

Идентификатор не может совпадать с каким-либо из стандартных ключевых слов РНР.
Добавить сообщение
Чтобы добавлять комментарии зарeгиcтрирyйтeсь