gpt4 book ai didi

php - 获取非限定类名的命名空间

转载 作者:行者123 更新时间:2023-12-04 16:54:43 25 4
gpt4 key购买 nike

考虑以下 PHP 代码

namespace foo\bar;

class MyClass {}

namespace xyz;
use foo\bar\MyClass;

class OtherClass {}

$a = new MyClass();
$b = new OtherClass();
$a\foo\bar\MyClass 的一个实例, 而 $b\xyz\OtherClass 的一个实例.这些完全限定的类名,我可以通过调用 get_class($a) 获得和 get_class($b) .但是有没有办法在不实例化对象的情况下获得完全限定的名称?是否有类似魔术功能的东西 fully_qualified_class_name使得 fully_qualified_class_name('MyClass')会返回 \foo\bar\MyClass , 和 fully_qualified_class_name('OtherClass')会返回 \xyz\OtherClass ?还是我只需要自己编写完全限定的名称?

最佳答案

从 php 5.5 开始,您可以通过 ::class 使用类名解析。

namespace foo\bar {
class MyClass {}
}

namespace xyz {
use foo\bar\MyClass;

class OtherClass {}

echo 'OtherClass namespace: ', OtherClass::class, "\n"; // print "OtherClass namespace: xyz\OtherClass"
echo 'MyClass namespace: ', MyClass::class, "\n"; // print "MyClass namespace: foo\bar\MyClass"
}

关于php - 获取非限定类名的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30618329/

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