Da PHP7, abbiamo anonymous classes.Come rilevare un'istanza di una classe anonima?
Come possiamo sapere se un $instance
è un'istanza di una classe anonima?
Da PHP7, abbiamo anonymous classes.Come rilevare un'istanza di una classe anonima?
Come possiamo sapere se un $instance
è un'istanza di una classe anonima?
Utilizzando Reflection
$instance = new class {};
$testInstance = new ReflectionClass($instance);
var_dump($testInstance->isAnonymous());
EDIT
Naturalmente, dato che è necessario eseguire PHP7 per le classi anonime in ogni caso, avvolgetelo in un one-liner
var_dump((new ReflectionClass($instance))->isAnonymous());
Funziona grande. Grazie! – MinhTri
Puoi provare questo: Here
<?php
class TestClass {}
$anonClass = new class {};
$normalClass = new ReflectionClass('TestClass');
$anonClass = new ReflectionClass($anonClass);
var_dump($normalClass->isAnonymous());
var_dump($anonClass->isAnonymous());
?>
uscita:
bool (false) bool (true)
Fuori di interesse, che cosa stai usando classi anonime per? Sono piuttosto interessanti e interessanti; ma (al di fuori di alcune librerie specialistiche) non ho visto casi d'uso in cui sono particolarmente utili –
@MarkBaker Ho bisogno di creare rapidamente un oggetto in un callback e deve implementare una determinata interfaccia ;-) – MinhTri