我一直在浏览PHP文档,试图确定是否有任何方法可以让我区分内置类的实例(如DateTime或PDO)和用户定义的类,但没有任何成功.
到目前为止,我发现的唯一方法是尝试将闭包绑定到实例.使用内置类执行此操作时,它会显示警告(yuk)并返回null.
$targetObject = new DateTime();
$closure = function();
$test = @$closure->bindTo($targetObject, get_class($targetObject));
if ($test === false) {
throw new Exception('General failure');
} elseif ($test === null) {
throw new Exception('Unable to bind to internal class');
}
Run Code Online (Sandbox Code Playgroud)
是否有人知道更清洁的方法来解决这个问题?
看一下反射API.手册
<?php
$d = new DateTime();
$r = new ReflectionClass($d);
echo ($r->isInternal());
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
144 次 |
最近记录: |