11.3. Объекты и классы
Эти функции возвращают информацию об объектах и о классах. string get_class(object variable)
Функция get_class (листинг 11.72) возвращает имя класса для заданного объекта. Для получения аналогичной информации от метода класса можно использовать константу __CLASS__ . При этом PHP всегда возвращает имена классов в нижнем регистре.
Листинг 11.72. Функция getclass
<?php
class animal
{
var $name;
}
$gus = new animal;
print("Gus принадлежит к новому типу " . get_class($gus) .
"<br>n"); ?>
array get_class_methods(string class) array get_class_methods(object instance)
Функция get_class_methods (листинг 11.73) возвращает массив имен методов для заданного класса. При этом можно задать как имя класса, так и экземпляр класса.
Листинг 11.73. Функция get_class_methods
<?php
class dog
{
var $name="none"; var $sound="woof!"; function speak()
{
print($this->sound);
}
}
$gus = new dog; $gus->name = "Gus";
foreach(get_class_methods($gus) as $method)
{
print("$method<br>n");
}
>
array get_class_vars(string class)
Функция get_class_vars (листинг 11.74) возвращает массив, содержащий свойства класса и их значения по умолчанию. Сравните эту функцию с функцией get_object_vars.
Листинг 11.74. Функция get_class_vars, get_object_vars
<?php
class animal
{
var $name="none";
var $age=0;
var $color="none";
}
$gus = new animal; $gus->name = "Gus"; $gus->age = 7;
$gus->color = "black and tan"; print("<b>get_class_vars</b><br>n"); foreach(get_class_vars("animal") as $key=>$val)
{
print("$key=$val<br>n");
}
print("<br>n");
print("<b>get_object_vars</b><br>n"); foreach(get_object_vars($gus) as $key=>$val)
{
print("$key=$val<br>n");
}
?>
array get_object_vars(object data)
Функция get_object_vars возвращает массив с описанием свойств объекта и их значения. Пример использования этой функции можно найти в примере использования функции get_class_vars.
string get_parent_class(object variable) string get_parent_class(string class)
Функция get_parent_class (листинг 11.75) возвращает имя порождающего класса для объекта или класса.
Листинг 11.75. Функция get_parent_class
<?php
class animal
{
var $name;
}
class dog extends animal
{
var $owner;
}
$gus = new dog; $gus->name = "Gus";
//Gus принадлежит к типу собак, который принадлежит к типу животных
print("$gus->name is of type " .
get_class($gus) . ", который принадлежат к типу ". get_parent_class($gus) . "<BR>n");
?>
boolean is_a(object instance, string class)
Функция is_a (листинг 11.76) возвращает значение TRUE, если заданный объект является членом класса или одного из порождающих классов.
Листинг 11.76. Функция is_a
<?php
class Fruit
{
var $color;
}
class Apple extends Fruit
{
var $variety;
}
$a = new Apple; // истина
if(is_a($a, 'Fruit'))
{
$a->color = 'yellow';
}
// истина
if(is_a($a, 'Apple'))
{
$a->variety = 'Fuji';
}
// ложь
if(is_a($a, 'Vegetable'))
{
$a->vitamin = 'E';
print_r($a);
boolean is_subclass_of(object instance, string class)
Функция is_subclass_of используется для проверки, является ли объект подклассом указанного класса.
boolean method_exists(object variable, string method)
Функция method_exists (листинг 11.77) возвращает значение TRUE, если указанный метод в указанном объекте существует.
Листинг 11.77. Функция method_exists
<?php
class animal {
var $name;
}
class dog extends animal
{
var $owner; function speak()
{
print("woof!");
}
}
$gus = new dog; $gus->name = "Gus"; if(method_exists($gus, "speak"))
{
$gus->speak();
}
?>
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Данные. Часть Пятнадцатая.
04-01-2015
<< Предыдущая статья | Следующая статья >> |
PHP. Данные. Часть Четырнадцатая. | PHP. Данные. Часть Шестнадцатая. |