是否可以使用保存在 PHP 中的字符串中的名称来检索类名?
Is it possible to retrieve a classname using its name saved in a string in PHP?
我在 PHP 的字符串中保存了一个 class 名称。
是否可以使用字符串解析 class 名称?
如果假设我有一个名为 'Myclass' 的 class,我需要这样的东西:
'Myclass'::class
我不完全清楚 ::class
对字符串有什么用。一个简单的事实是,如果这可行,它只会输出与您已有的字符串相同的字符串。即在您的示例中,'MyClass'::class
将输出字符串 MyClass
.
也许您正在尝试使用仅包含 classname 的字符串并尝试解析名称空间?这行不通。但是您可以使用 __NAMESPACE__
保留字获取当前命名空间:
namespace foo\bar;
echo __NAMESPACE__; //will output 'foo\bar'
您可以将它与 class 名称字符串结合使用,为当前命名空间构建完全限定的 class 名称。
如果你想从不同的命名空间获得一个class名称,那么你必须事先知道命名空间;没有命名空间,PHP 根本无法找到 class。
我在 PHP 的字符串中保存了一个 class 名称。 是否可以使用字符串解析 class 名称?
如果假设我有一个名为 'Myclass' 的 class,我需要这样的东西:
'Myclass'::class
我不完全清楚 ::class
对字符串有什么用。一个简单的事实是,如果这可行,它只会输出与您已有的字符串相同的字符串。即在您的示例中,'MyClass'::class
将输出字符串 MyClass
.
也许您正在尝试使用仅包含 classname 的字符串并尝试解析名称空间?这行不通。但是您可以使用 __NAMESPACE__
保留字获取当前命名空间:
namespace foo\bar;
echo __NAMESPACE__; //will output 'foo\bar'
您可以将它与 class 名称字符串结合使用,为当前命名空间构建完全限定的 class 名称。
如果你想从不同的命名空间获得一个class名称,那么你必须事先知道命名空间;没有命名空间,PHP 根本无法找到 class。