即使页面中有类,PHP class_exists也没有回显输出

时间:2011-06-28 09:22:48

标签: php

我正在尝试显示一个消息,如果有一个类存在,不确定我是否对此有正确的想法但是它似乎没有显示任何内容,即使该类在那里页面。

<?php if (class_exists('quote-me')): ?>
<?php echo $this->__('View Quotation'); ?>
<?php endif; ?>

如果我走在正确的轨道上,有人可以告诉我。

5 个答案:

答案 0 :(得分:5)

class_exists()仅检查是否已定义类,而不是当前是否有该类的实例。您可以在范围内定义quote-me类,触发if块,但这本身并不意味着您拥有该类的有效实例。

如果你有一个实例,假设$this->__('View Quotation');有效,那么它不起作用的事实可能表明你实际上没有范围内quote-me类的实例。

答案 1 :(得分:1)

来自php.net

  

此函数检查是否已定义给定的类。

所以,是的,你走在正确的轨道上。

<?php if(class_exists('my_class_name')){
      // do something
}
?>

答案 2 :(得分:1)

如果此代码不在实际类中,那么您应该通过在声明/初始化时分配给它的变量名来引用对象,而不是$this。 例如,

    $test = new quote-me
if (class_exists('quote-me')) 
{
     echo $test->__('View Quotation'); 
}

答案 3 :(得分:1)

您应该使用class_exists(some_class, false)来阻止自动加载...

答案 4 :(得分:0)

是的class_exists是正确的功能(如果这是你的问题)