2016-06-08 28 views
6

PHP7'den beri, anonymous classes var.Anonim bir sınıfın örneği nasıl algılanır?

$instance anonim bir sınıfın örneği olup olmadığını nasıl anlayabiliriz? Kullanılması

+0

? Oldukça ilginç ve havalılar; ama (birkaç uzman kütüphanesi dışında) özellikle yararlı oldukları herhangi bir kullanım durumu görmedim –

+0

@MarkBaker Bir geri çağırma sırasında hızlıca bir nesne yaratmam gerekiyor ve belirli bir arabirimi uygulamalıdır ;-) – MinhTri

cevap

8

Reflection

$instance = new class {}; 

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

DÜZENLEME Tabii

, yine anonim sınıflar için PHP7 çalışıyor olmalıdır göz önüne alındığında, tek astar

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

harika. Teşekkürler! – MinhTri

0

içine sarmak Bunu deneyebilirsiniz: Here

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

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

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

Çıktı:

bool (false) bool (true) için Anonim Sınıfları kullanarak ne

ilgi Out