2011-07-20 15 views
0

1つのオブジェクトを持つクラスを宣言しました。そのオブジェクトを呼び出すメソッドは大丈夫ですが、出力を生じさせないオブジェクトではないメソッドを呼び出すことができます。ここに示します。 バグでない場合、出力がない理由

 
    
       // defining simple class 
      class Person{ 
      function say_hello($name='world') 
       { 
        echo "hello {$name}";

  } 
     } 

     $instant1 = new Person(); 

     $object2 = new Person(); 

     echo get_class($object2); 
     ?> 
<br/> 
<?php 

if(is_a($object2,'Person')) 
{ 
//remeber to pass arguments 
echo "This object or instant is in that class"; 
} 
else { 

echo "No dude :("; 
} 

?> 



<?php 


$instant1->say_hello('Paritosh'); 

echo " <br/>"; 

$ ob-> say_hello(); //エラーなし出力なし、$ obという名前のオブジェクトがなくてもコードが実行されていない //それはバグか何かの概念ですか?

echo "出力しません";
$ object2-> say_hello();

?> 

私はWebMatrixのプラットフォームでIIS ExpressでPHPバージョン5.2.17を使用しています。

+0

変更PHPエラーのエラーを表示するレベル、警告 –

+0

@shakti:それは問題ではないのです。私の質問はなぜ出力がないのですか? – Inactive

答えて

0

$ obは人ではありませんので、通訳者はあなたにアクセスしたいと知っていますか? オブジェクトなし機能にアクセスしたい場合は、試してみてください。

Person::say_hello(); 
+0

これは私が言っていることです。インタプリタはエラーを投げたり、その行を無視しなければなりませんが、なぜその行の下に書き込まれるエコーはありませんか?エコー "出力なし"; $ object2-> say_hello(); //出力がありません – Inactive

+0

エラーを表示していないだけです。shaktisのコメントを参照してそれを有効にしてください。エラーは "オブジェクトobにはメソッドがありません..."のようなものでなければなりません。 – Flo

+0

私はあなたが言っていることに同意しますが、なぜその行の下に書き込まれた出力がないのですか。 – Inactive

関連する問題