С PHP7 у нас есть anonymous classes.Как обнаружить экземпляр анонимного класса?
Как мы можем узнать, является ли случай $instance
экземпляром анонимного класса?
С PHP7 у нас есть anonymous classes.Как обнаружить экземпляр анонимного класса?
Как мы можем узнать, является ли случай $instance
экземпляром анонимного класса?
Использование Reflection
$instance = new class {};
$testInstance = new ReflectionClass($instance);
var_dump($testInstance->isAnonymous());
EDIT
Конечно, при условии, что вы должны работать PHP7 для анонимных классов в любом случае, завернуть в однострочника
var_dump((new ReflectionClass($instance))->isAnonymous());
Он работает Великий. Спасибо вам! – MinhTri
Вы можете попробовать следующее: Here
<?php
class TestClass {}
$anonClass = new class {};
$normalClass = new ReflectionClass('TestClass');
$anonClass = new ReflectionClass($anonClass);
var_dump($normalClass->isAnonymous());
var_dump($anonClass->isAnonymous());
?>
Выход:
BOOL (ложь) BOOL (истина)
Из интереса, что вы используете классы анонимным? Они довольно интересные и классные; но (за пределами нескольких специализированных библиотек) я не видел каких-либо прецедентов, где они особенно полезны –
@MarkBaker Мне нужно быстро создать объект в обратном вызове и он должен реализовать определенный интерфейс ;-) – MinhTri