PHP类名称为字符串

时间:2013-02-20 16:31:48

标签: php class

是否有内置的静态方法或属性来引用PHP类,以便它在上下文中表示为字符串?例如:

而不是:

$obj->tempFn('MyClass') //MyClass being the name of the class

我想这样做:

$obj->tempFn(MyClass) //Directly references the class name, instead of a string representation

3 个答案:

答案 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

的评论