Как найти переменную экземпляра класса?

227
12 августа 2017, 04:27

В классе есть нужный мне метод. Непонятно объект уже создан или надо его мне создать. Проверяю:

$class = class_exists('MyClass'); // bool(true)

Экземпляр уже есть, но как к нему обратиться? В какой он переменной что бы сделать:

$exemplar->method('мои данные');
Answer 1

Можно сделать поиск класса через перебор всех объявленных переменных получаемых от функции get_defined_vars()

Набросок кода:

class classA{}
class classB{}
class classC extends classA{}
$aa = new classA;
$bb = new classB;
$cc = new classC;
foreach(get_defined_vars() as $v => $c) {
    if (is_a($c, 'classA') && get_class($c) === 'classA') {
        var_dump($v);
    }
}

Выведет:

string(2) "aa"

P.S. Описание функций is_a() и get_class() смотрите там же, в мануале.

READ ALSO
Смена версии php в Ubuntu

Смена версии php в Ubuntu

Привет Нужно поменять версию php с 7 на 56 на Ubuntu

364
Система аватарок [требует правки]

Система аватарок [требует правки]

Помогите сделать систему аватарок, с помощью переменных php

242
Как удалить старую версию PHP Ubuntu

Как удалить старую версию PHP Ubuntu

Как удалить старую версию PHP (точнее полностью php) в Ubuntu?

314
php IF условие не хочет работать

php IF условие не хочет работать

Не могу понять в чем проблема

201