gpt4 book ai didi

php - 如何判断一个类是内部类还是用户类?

转载 作者:IT王子 更新时间:2023-10-29 00:12:40 24 4
gpt4 key购买 nike

在 PHP 中是否有一种方法可以判断(显然是通过编程方式)给定的类是内部类(例如DateTime)还是用户类(MyClass 类)?

如果你想知道(我相信你会想),这是因为 ReflectionClass::newInstanceWithoutConstructor()在内部类上使用时会抛出异常,并且当我正在编写一个库来深度复制对象时,它必须跳过这些内部类。

是的,我可以捕获 ReflectionException,但是这个异常也会因其他原因(例如不存在的类)而抛出,并且不会对所有系统类抛出。所以它不能完全满足我的需求。

最佳答案

比使用 shell_exec 更干净的解决方案是使用 reflection:

$reflection = new ReflectionClass('SomeClass'); 
if($reflection->isUserDefined()) {
// 'SomeClass' is not an PHP internal
}

除了字符串 ('SomeClass'),您还可以传递一个对象。欲了解更多信息,请查找 ReflectionReflectionClass::isUserDefined()在 PHP 手册中

关于php - 如何判断一个类是内部类还是用户类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16961085/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com