2012-04-20 8 views
0

なぜ以下のコードで値が返されないのですか?私はただ空白の画面を取得しています。oopsプライベート変数の値がエラーを返さない

私は私のプライベート変数のvalを子クラスで試してみると、少なくとも何らかのエラーが返されるはずです。

var_dump($CustomerObj->sub2()); 
NULL 

print NULL; 
//nothing.... 

詳細については、@Jamesの答えをチェックしてください。

class Customer { 

    private $instance_count = 0; //private data member 
    function sub1(){ 
     return $this->instance_count++; 
    } 

} 
class CustomerChild extends Customer{ 
    function sub2(){ 
     return $this->instance_count++; 
    } 

} 
$CustomerObj = new CustomerChild(); 
print $CustomerObj->sub2(); 
+0

私は未定義の変数を使用すると、子クラスのプライベートメソッドにアクセスするときにエラーが発生します。 – user1127564

答えて

1

の理由は、あなたがNULLを印刷しようとしていること、です。 php.iniでログをオンにし、(Windowsの場合)あなたがそうのように指定したファイルを作成するための

0

試してみてください。

log_errors = On 
error_log = C:\TEMP\PHP.LOG 

いけない、ファイルをフォルダを作成し、そのファイルへの書き込み権限を有効にすることを忘れ。

2
private $instance_count = 0; 

変更

protected $instance_count = 0; 

に子クラスは、プライベート変数にアクセスすることはできません。あなたはそのための保護された変数が必要です。また

、あなたのコメント:

//static data member 

コメントがなぜ変数がわからない、静的ではないこと。

+0

james:typo mistake – user1127564

+0

プライベートのみ – user1127564

+0

私はそれがプライベートであることを知っています、それはあなたの問題です。 "子クラスはプライベート変数にアクセスできません。"保護された変数は子クラスによってアクセスできますが、外部からアクセスすることはできません。 – James

関連する問題