我正在尝试显示一个消息,如果有一个类存在,不确定我是否对此有正确的想法但是它似乎没有显示任何内容,即使该类在那里页面。
<?php if (class_exists('quote-me')): ?>
<?php echo $this->__('View Quotation'); ?>
<?php endif; ?>
如果我走在正确的轨道上,有人可以告诉我。
答案 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是正确的功能(如果这是你的问题)