2011-06-28 37 views
1

我想要顯示一條消息,如果一個類存在,不知道如果我有這個或沒有正確的想法,但它doesn即使課程在頁面上,也不會顯示任何內容。即使頁面中的類沒有回顯輸出PHP class_exists

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

有人可以讓我知道,如果我在正確的軌道上。

+3

是在同一個文件或一個不同的類?如果它在一個diff文件中,是否包含文件?我不明白爲什麼你需要使用''作爲everyline,當你可以用它作爲語句塊時...... – Balanivash

+0

'$ this'指向什麼? –

+1

你在這裏沒有想過CSS類,對吧? – igorw

回答

5

class_exists()只檢查類已經被定義,而不是如果您目前有這個類的一個實例。您可以定義quote-me類並在範圍內觸發if塊,但這本身並不意味着您擁有該類的有效實例。

假設$this->__('View Quotation');如果您有一個實例,那麼它不起作用的事實可能表明您實際上沒有範圍內quote-me類的實例。

0

是class_exists是正確的功能(如果這是你的問題)

1

php.net

此功能檢查給定的類是否已經被定義。

所以,你是在正確的軌道上。

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

如果此代碼不在實際的類中,則應該通過在聲明/初始化時分配給它的變量名來引用對象,而不是$this。 例如,

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

你應該使用class_exists(some_class, false)防止自動加載...

相關問題