Проверьте, является ли переменная, в которой хранится имя класса, экземпляром класса

0

Возможно, я пропустил что-то в is_a() и instanceof, но есть ли способ заставить эту строчную версию работать?

$myclass = 'MyClass';

if ($myclass instanceof MyClass) {
    echo 'Yes';
} else {
    echo 'No';
}

Это работает отлично, как ожидалось, и печатает Да:

$myclass = new MyClass();

if ($myclass instanceof MyClass) {
    echo 'Yes';
 else {
    echo 'No';
}
  • 0
    $myclass = 'MyClass'; if (class_exists($myclass)) { echo 'Yes'; } else { echo 'No'; } возможно?
  • 0
    stackoverflow.com/questions/3017684/… Ссылка выше имеет хорошее объяснение
Теги:

1 ответ

3
Лучший ответ

Вопрос:
Check if variable which stores name of a class is an instanceof a class

Мой ответ:

Если переменная хранит имя класса, она не может быть экземпляром этого класса, потому что это строка!

Что вы могли бы захотеть:

Check if variable stores a name of existing class

Решение:

if (class_exists($myclass)) { ... }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню