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

Функция get_class

Сделайте объект какого-нибудь класса. Примените к объекту функцию get_class и узнайте имя класса, которому принадлежит объект.

Сделайте два класса: Test1 и Test2. Пусть оба класса имеют свойство name. Создайте некоторое количество объектов этих классов и запишите в массив $arr в произвольном порядке. Переберите этот массив циклом и для каждого объекта выведите значение его свойства name и имя класса, которому принадлежит объект.

Функция get_class_methods

Сделайте класс Test с методами method1, method2 и method3. С помощью функции get_class_methods получите массив названий методов класса Test.

Создайте объект класса Test, запишите его в переменную $test. С помощью функции get_class_methods получите массив названий методов объекта. Переберите его циклом и в цикле вызовите каждый метод класса, используя объект $test. Переберите этот массив циклом и в этом цикле вызовите каждый метод объекта.

Функция get_class_vars

Сделайте класс Test с публичными свойствами prop1 и prop2, а также с приватными свойствами prop3 и prop4.

Вызовите функцию get_class_vars снаружи класса Test. Выведите массив доступных свойств.

Вызовите функцию get_class_vars внутри класса Test (например, в конструкторе). Выведите массив доступных свойств.

Функция get_object_vars

Сделайте класс Test с публичными свойствами prop1 и prop2, а также с приватными свойствами prop3 и prop4. Создайте объект этого класса. С помощью функции get_object_vars получите массив свойств созданного объекта.

Функция class_exists

Пусть у вас есть класс Test1 и нет класса Test2. Проверьте, что выведет функция class_exists для класса Test1 и для класса Test2.

Пусть GET параметром в адресную строку передается название класса. Проверьте, существует ли такой класс. Выведите соответствующее сообщение на экран.

Функция method_exists

Сделайте класс Test с методом method1 и без метода method2. Проверьте, что выведет функция method_exists для метода method1 и для метода method2.

Пусть GET параметрами в адресную строку передаются название класса и его метод. Проверьте, существует ли такой класс. Если существует - проверьте существование переданного метода. Если и метод существует - создайте объект данного класса, вызовите указанный метод и выведите результат его работы на экран.

Функция property_exists

Сделайте класс Test со свойством prop1 и без свойства prop2. Проверьте, что выведет функция property_exists для свойства prop1 и для свойства prop2.

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

Функция get_parent_class

Сделайте класс ChildClass наследующий от ParentClass. С помощью функции get_parent_class выведите на экран родителя класса ParentClass.

Функции is_subclass_of

Сделайте класс ChildClass наследующий от ParentClass, который в свою очередь наследует от GrandParentClass

С помощью функции is_subclass_of проверьте, является ли класс ChildClass потомком GrandParentClass.

С помощью функции is_subclass_of проверьте, является ли класс ParentClass потомком GrandParentClass.

С помощью функции is_subclass_of проверьте, является ли класс ChildClass потомком ParentClass.

Функция is_a

Сделайте класс ChildClass наследующий от ParentClass. Создайте объект класса ChildClass, запишите его в переменную $obj.

С помощью функции is_a проверьте, принадлежит ли объект $obj классу ChildClass.

С помощью функции is_a проверьте, принадлежит ли объект $obj классу ParentClass.

Функция get_declared_classes

Выведите на экран список всех объявленных классов.