简体   繁体   English

如何检测匿名类的实例?

[英]How to detect an instance of an anonymous class?

Since PHP7, we have anonymous classes . 从PHP7开始,我们有匿名类

How can we know if an $instance is an instance of an anonymous class? 我们如何知道$instance是否是匿名类的实例?

Using Reflection 使用反射

$instance = new class {};

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

EDIT 编辑

Of course, given that you must be running PHP7 for anonymous classes anyway, wrap it up into a one-liner 当然,鉴于您必须为匿名类运行PHP7,请将其包装成一行

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

You can try this one: Here 你可以尝试这个: 这里

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

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

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

Output: 输出:

bool(false) bool(true) bool(假)bool(true)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM