Od PHP7 mamy anonymous classes.Jak wykrywać instancję anonimowej klasy?
Skąd możemy wiedzieć, czy $instance
jest instancją anonimowej klasy?
Od PHP7 mamy anonymous classes.Jak wykrywać instancję anonimowej klasy?
Skąd możemy wiedzieć, czy $instance
jest instancją anonimowej klasy?
Korzystanie Reflection
$instance = new class {};
$testInstance = new ReflectionClass($instance);
var_dump($testInstance->isAnonymous());
EDIT
Oczywiście, biorąc pod uwagę, że musi być uruchomiony PHP7 dla anonimowych klas tak, zawiń go w jedną wkładką
var_dump((new ReflectionClass($instance))->isAnonymous());
To działa wspaniały. Dzięki Ci! – MinhTri
Możesz wypróbować ten: Here
<?php
class TestClass {}
$anonClass = new class {};
$normalClass = new ReflectionClass('TestClass');
$anonClass = new ReflectionClass($anonClass);
var_dump($normalClass->isAnonymous());
var_dump($anonClass->isAnonymous());
?>
wyjściowa:
bool (false) bool (true)
Z odsetek, co używasz anonimowych klas dla? Są całkiem ciekawe i fajne; ale (poza kilkoma specjalistycznymi bibliotekami) nie widziałem żadnych przypadków użycia, które są szczególnie przydatne –
@MarkBaker Potrzebuję szybko utworzyć obiekt w wywołaniu zwrotnym i musi zaimplementować określony interfejs ;-) – MinhTri