2016-06-08 54 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()); 
?> 

輸出:

布爾(假) 布爾(真)