2016-06-08 79 views
6

自PHP7以来,我们有anonymous classes如何检测匿名类的实例?

我们如何知道$instance是否是匿名类的实例?

+0

出于兴趣,你有什么用匿名类呢?他们很有趣,很酷;但是(除了一些专业库之外)我还没有看到任何特别有用的用例 –

+0

@MarkBaker我需要快速创建一个回调对象,并且它必须实现某个接口;-) – MinhTri

回答

8

使用Reflection

$instance = new class {}; 

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

编辑

当然,因为你无论如何必须运行匿名类PHP7,把它包装成一个班轮

var_dump((new ReflectionClass($instance))->isAnonymous()); 
+0

它的工作原理大。谢谢! – MinhTri

0

你可以试试这个:Here

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

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

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

输出:

布尔(假) 布尔(真)