Как обнаружить экземпляр анонимного класса?


Начиная с PHP7, у нас есть анонимные классы.

Как мы можем узнать, является ли $instance экземпляром анонимного класса?

Author: MinhTri, 2016-06-08

2 answers

Использование Отражения

$instance = new class {};

$testInstance = new ReflectionClass($instance);
var_dump($testInstance->isAnonymous());

РЕДАКТИРОВАТЬ

Конечно, учитывая, что вы все равно должны запускать PHP7 для анонимных классов, заверните его в однострочный

var_dump((new ReflectionClass($instance))->isAnonymous());
 9
Author: Mark Baker, 2016-06-08 10:52:34

Вы можете попробовать это: Здесь

<?php 
class TestClass {}
$anonClass = new class {};

$normalClass = new ReflectionClass('TestClass');
$anonClass  = new ReflectionClass($anonClass);

var_dump($normalClass->isAnonymous());
var_dump($anonClass->isAnonymous());
?>

Вывод:

Bool(ложь) bool(истина)

 0
Author: Mahesh Saini, 2016-06-08 10:57:04