Возможно, я пропустил что-то в 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';
}
Вопрос: 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)) { ... }
$myclass = 'MyClass'; if (class_exists($myclass)) { echo 'Yes'; } else { echo 'No'; }
возможно?