Изучаем PHP программирование

   Search   

Русская версия | English version   

Скрипты :: Секреты профессионалов :: Link :: FAQ   Пишите письма  



 

главная :: основы PHP

Функции для работы с классами и объектами

В РНР существует несколько стандартных функций для работы с классами и объектами; эти функции рассматриваются в следующих разделах. Все они часто используются на практике, особенно в процессе разработки интерфейса, администрирования кода и диагностики ошибок. get_class_methods( ) Функция get_class_methods( ) возвращает массив имен методов класса с заданным именем. Синтаксис функции get_class_methods( ): array get_class_methods (string имя_класса) Простой пример использования get_class_methods( ) приведен в листинге 6.7. Листинг 6.7. Получение списка методов класса wingspan = $wingspan; } function getWingSpan() { return $this->wingspan; } } $cls_methods = get_class_methods(Airplane); // Массив $cls_methods содержит имена всех методов, // объявленных в классах "Airplane" и "Vehicle" ?> Как видно из листинга 6.7, функция get_class_methods( ) позволяет легко получить информацию обо всех методах, поддерживаемых классом. get_class_vars( ) Функция get_class_vars( ) возвращает массив имен атрибутов класса с заданным именем. Синтаксис функции get_class_vars( ): array get_class_vars (string имя_класса) Пример использования get_class_vars( ) приведен в листинге 6.8. Листинг 6.8. Получение списка атрибутов класса функцией get_class_vars( ) Массив $attribs заполняется именами всех атрибутов класса Airplane. get_object_vars( ) Функция get_object_vars( ) возвращает ассоциативный массив с информацией обо всех атрибутах объекта с заданным именем. Синтаксис функции get_object_vars( ): array get_object_vars (object имя_обьекта) Пример использования функции get_object_vars( ) приведен в листинге 6.9. Листинг 6.9. Получение информации о переменных объекта doors = $doors; $this->engine = $eng; $this->wheels = $wheels; } function get_wheels() { return $this->wheels; } } $toyota = new car(2,400,4); $vars = get_object_vars($toyota); while (list($key, $value) = each($vars)) : print "$key ==> $value
"; endwhile; // Выходные данные: // doors ==> 2 // engine ==> 400 // wheels ==> 2 ?> Функция get_object_vars( ) позволяет быстро получить всю информацию об атрибутах конкретного объекта и их значениях в виде ассоциативного массива. method_exists( ) Функция method_exists( ) проверяет, поддерживается ли объектом метод с заданным именем. Если метод поддерживается, функция возвращает TRUE, в противном случае возвращается FALSE. Синтаксис функции method_exists( ): bool method_exi sts (object имя_обьекта. string имя_метода) Пример использования метода method_exists( ) приведён в листинге 6.10. Листинг 6.10. Проверка поддержки метода объектом при помощи функции method_exists() fourWeel = 1; } } // Создать объект с именем $саr $car = new Land; // Если метод "fourWheelDrive" поддерживается классом "Land" // или "Vehicle", вызов method_exists возвращает TRUE; // в противном случае возвращается FALSE. // В данном примере method_exists() возвращает TRUE. if (method_exists($car, "setfourWheelDrive")) : print "This car is equipped with 4-wheel drive"; else : print "This car is not equipped with 4-wheel drive"; endif; ?> В листинге 6.10 функция method_exists ( ) проверяет, поддерживается ли объектом $car метод с именем setFourWheelDrive( ). Если метод поддерживается, функция возвращает логическую истину и фрагмент выводит соответствующее сообщение. В противном случае возвращается FALSE и выводится другое сообщение. get_class( ) Функция get_class( ) возвращает имя класса, к которому относится объект с заданным именем. Синтаксис функции get_class( ): string get_class(object имя_объекта); Пример использования get_class( ) приведен в листинге 6.11. Листинг 6.11. Получение имени класса функцией get_class( ) В результате переменной $class_a присваивается имя класса, на основе которого был создан объект $саr. get_parent_class( ) Функция get_parent_class( ) возвращает имя родительского класса (если он есть) для объекта с заданным именем. Синтаксис функции get_parent_dass( ): string get_parent_class (object имя_обьекта); Листинг 6.12 демонстрирует использование get_parent_class( ). Листинг 6.12. Получение имени родительского класса функцией get_parent_class( ) Как и следовало ожидать, при вызове get_parent_class( ) переменной $parent будет присвоена строка "Vehicle". is_subclass_of( ) Функция is_subclass_of( ) проверяет, был ли объект создан на базе класса, имеющего родительский класс с заданным именем. Функция возвращает TRUE, если проверка дает положительный результат, и FALSE в противном случае. Синтаксис функции is_subclass_of( ): bool is_subclass_of (object объект, string имя_класса) Использование is_subclass_of( ) продемонстрировано в листинге 6.13. Листинг 6.13. Использование функции is_subdass_of( ) В листинге 6.13 переменной $is_subclass( ) присваивается признак того, принадлежит ли объект $auto к субклассу родительского класса Vehicle. В приведенном фрагменте $auto относится к классу Vehicle; следовательно, переменной $is_subclass( ) будет присвоено значение TRUE. get_declared_classes( ) Функция get_declared_classes( ) возвращает массив с именами всех определенных классов (листинг 6.14). Синтаксис функции get_declared_classes( ): array get_declared_classes( ) Листинг 6.14. Получение списка классов функцией get_declared_classes( )

Designed by Fedin
All right reserved
2003-2004
Hosted by uCoz