PHP:获取传递的var的类名?
我有一个函数,它将一个类作为参数传递给它。我想以字符串形式获取传递的类的类名 我尝试将此方法放入已传递的类中:PHP:获取传递的var的类名?,php,oop,php4,classname,Php,Oop,Php4,Classname,我有一个函数,它将一个类作为参数传递给它。我想以字符串形式获取传递的类的类名 我尝试将此方法放入已传递的类中: function getClassName() { return __CLASS__; } 但是如果类被扩展,我假设它会返回子类的名称,但它仍然返回超类的名称,我觉得有点奇怪 所以,给定一个作为参数传递给函数的$var,是否有方法获取类名的字符串 谢谢 看,这正是你想要达到的目标 $class_name = get_class($object); _
function getClassName()
{
return __CLASS__;
}
但是如果类被扩展,我假设它会返回子类的名称,但它仍然返回超类的名称,我觉得有点奇怪
所以,给定一个作为参数传递给函数的$var,是否有方法获取类名的字符串
谢谢 看,这正是你想要达到的目标
$class_name = get_class($object);
__类u uu,返回在其中实现该方法的类的名称 如果要获取传递的对象的类名,则可以使用:
get_class($param);
另外,如果您使用的是PHP5,那么提供的反射类也很有用。使用:
直接从php文档:
上述示例将输出:
字符串(3)“foo”
字符串(3)“bar”
您还可以向传递的类中添加一个方法,返回以下内容:
var_dump(get_称为_class()) 获取没有命名空间的类名的最简单方法是:
$class = explode('\\', get_called_class());
echo end($class);
或者用preg_替换
echo preg_replace('/.*([\w]+)$/U', '$1', get_called_class());
$class = explode('\\', get_called_class());
echo end($class);
echo preg_replace('/.*([\w]+)$/U', '$1', get_called_class());