Блог веб разработки статьи | видеообзоры | исходный код

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

методы классов PHP

методы классов  PHP

Всем привет и сегодня мы с вами рассмотрим функции отладки которые могут получать информацию о классах, их методах и свойствах. Поехали!

Допустим у нас есть некий класс:

class Main {
    private $hello = "Hello world";

    public function __construct() {
        echo $this->getParam();
    }

    private function getParam(){
        return $this->hello;
    }
}
$object_Main = new Main();

здесь у нас определен класс Main и создан его объект $object_Main, в результате чего у нас выводится строчка 'Hello world'. И мы хотим проверить действительно ли у нас существует данных класс. Сделать это можно используя функцию class_exists():

if(class_exists('Main')){
    echo 'Класс существует';
}else{
    echo 'Нет класса не существует';
}

В качестве аргумента данной функции передается название класса, который мы хотим проверить на существование. И если класс существует в контексте данного документа нам возвращается true, а если нет то false. Здесь все просто.

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

Едем дальше. С помощью функции get_declared_classes() мы получим массив со всеми доступными нам классами:

echo "<pre>";
 print_r(get_declared_classes());
echo "</pre>";

здесь вы возможно будете немного шокированы количеством классов которые нам доступны. Классы которые вы создали в контексте данного документа будут в самом конце списка этого массива.

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

echo get_class($object_Main);

нам вернется имя класса объекта(Main).

Мы также зная имя класса можем получить перечень его методов, используя функцию get_class_methods():

print_r(get_class_methods('Main'));

в качестве аргумента мы передаем имя класса. Здесь важно понимать что нам вернутся методы класса только с модификатором доступа public.

Однако мы с помощью функции method_exists() можем проверять наличие метода с любым модификатором в классе.

if(method_exists($object_Main,'getParam')){
echo 'Да метод существует';
}else{
    echo 'Данного метода нет';
}

данной функции уже передается два параметра. Первый объект класса, второй название метода который мы проверяем на наличие. Результатом исхода будет true или false.

Чтобы получить перечень свойств класса можно воспользоваться функцией get_class_vars():

print_r(get_class_vars('Main'));

нам вернется массив свойств класса Main с модификатором доступа public.

И напоследок давайте рассмотрим еще одну функцию, которая позволяет определять название родительского класса:

if(get_parent_class('Main')) {
    echo "Имя родительского класса ".get_parent_class('Main');
}else{
    echo "У данного класса нет родителя";
}

здесь мы проверили есть ли у класса Main родительский класс. В нашем случае его нет. Поэтому нам вернется false, а в другом случае возвращается имя родительского класса.

Вот в принципе и все что я хотел вам рассказать. Данными функциями в основном пользуются для отладки программного кода. Когда необходимо получить краткую и структурированную информацию о классе не углубляясь в сам код.

На этом я с вами прощаюсь и желаю удачи! Пока!

Оцените статью:

Статьи

Комментарии

Внимание!!! Комментарий теперь перед публикацией проходит модерацию

Все комментарии отправлены на модерацию

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm