2012-01-28 11 views
1
にアクセスすることはできません

以下に示すように、私は親クラスから変数にアクセスしようとしています:PHP:親クラス変数に

//PARENT CLASS 
class InfoString{ 
    private $username = "JOE"; 

    public function _construct(){} 

    protected function get_username(){ 
     return $this->username; 
    }   
} 


class Service extends InfoString{ 
    //this class should now inherit the variables in InfoString, right?? 
    public function _construct(){} 

    public function hello_username(){ 
     echo "HELLO! ". parent::get_username(); 
    } 
} 

と私はそうのようなクラスを呼び出します。その代わり

$a = new Service(); 
$a->hello_username(); //prints nothing, instead of the username 

"HELLO!JOE"を取得すると、空の文字列が得られます。私はここで間違って何をしていますか?

また、 'InfoString'クラスに設定パラメータが含まれているとします。このクラスを拡張することをお勧めしますか?たとえば、 'InfoString'クラスから別のクラスに設定変数を取得するための適切な実装ですか? ??

ありがとうございました。

+1

http://codepad.viper-7.com/wqiKSF – xdazz

+0

いいえ、その正しい、あなたのコードを書いている場所を確認してください。エラーはありません。 – Bajrang

+0

コードに間違いはありませんでしたか?私のサーバーではうまく動作し、欲望の出力をプリントします。 –

答えて

2

InfoStringを延長しているだけなので、$this->get_username();を使用すれば正常に動作します。 ::は静的メソッドを呼び出すためのものです。

また、エラーレベルを上げるとエラーが発生します。電話error_reporting(E_ALL)を呼び出します。これにより、今後同様の問題を解決する手がかりが得られます。

+0

ありがとうございます。私はエラーレベルを調整しようとします。 – Johny

関連する問題