是否有内置的静态方法或属性来引用PHP类,以便它在上下文中表示为字符串?例如:
而不是:
$obj->tempFn('MyClass') //MyClass being the name of the class
我想这样做:
$obj->tempFn(MyClass) //Directly references the class name, instead of a string representation
答案 0 :(得分:7)
没有。但是您可以在类中定义一个包含类名的常量,如:
class foo{
const
NAME = 'foo';
}
并像foo::NAME
一样访问它。
在PHP 5.5中,您将可以使用:
foo::class
答案 1 :(得分:1)
echo get_class($this);
应该在课堂内工作。
echo __CLASS__;
我相信这是一个静态属性
答案 2 :(得分:0)
如果真的想避免静态,我认为Reflection类可能有用。
function getClassName(ReflectionParameter $param) {
preg_match('/\[\s\<\w+?>\s([\w]+)/s', $param->__toString(), $matches);
return isset($matches[1]) ? $matches[1] : null;
}
这是来自http://www.php.net/manual/en/reflectionparameter.getclass.php
的评论