class_implements函数在什么场景下会返回false且不触发警告?
问题结论
class_implements 仅在第二个$autoload参数显式设为false,且传入的类名未被当前运行环境加载时,返回false且不会抛出任何警告。
逻辑说明
该函数的完整签名如下:
class_implements(object|string $object_or_class, bool $autoload = true): array|false
默认$autoload参数值为true,此时如果传入的类不存在,函数会先尝试调用自动加载器加载类,加载失败就会抛出你测试时遇到的类不存在警告,同时返回false。
当你将$autoload显式设为false时,函数不会触发自动加载逻辑,也不会对未加载的类抛出警告,会直接返回false。
可复现代码示例
// 假设环境中没有加载MyClass,也没有注册对应类的自动加载逻辑 var_dump(class_implements('MyClass', false)); // 输出结果:bool(false),无任何警告/报错
内容的提问来源于stack exchange,提问作者bici
相关产品推荐
相关产品推荐

