2011-06-28 9 views
1

クラスが存在する場合に表示するメッセージを取得しようとしていますが、これで正しいかどうかはわかりませんが、クラスがページにあっても何も表示されていないようです。クラスのページがあるにもかかわらず、クラス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クラスのインスタンスを持っていない指標である可能性があると仮定すると

1

右の関数である。

この関数は、指定したクラスが定義されているかどうかをチェックします。

はい、あなたは正しい方向にあります。クラスが定義されている場合

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

このコードが実際のクラスにない場合は、$thisではなく、宣言/初期化時に割り当てた変数名でオブジェクトを参照する必要があります。 たとえば、あなたが自動ロードを防ぐためにclass_exists(some_class, false)を使用しなければならない

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

...

関連する問題