2016-09-16 8 views
3

アクセス変数

myClass::getSomething('stuff'); 

class myClass 
{ 

    public static function getSomething($var) { 

     $obj = new static(); 
     $obj->var = $var; 

     $obj->somethingElse(); 

    } 

    public function somethingElse() { 

     // I need to access $obj->var in here 

    } 

} 

私はsomethingElse()$objを渡すか、正しい方法ということでしょうか?

+1

を 'getSomething'方法が見えます。 – k0pernikus

答えて

2

$objは、myClassのインスタンスです。これは、とりわけ、メソッドsomethingElse()を持ち、プロパティーを追加したばかりです。$var

だからあなたの方法では、プロパティに直接アクセスすることができます。それは工場に属しているよう

public function somethingElse() { 

    $the_contents_of_var = $this->var; 

} 
+1

私は明らかに悪い一日を過ごしています。私はそれをして、 'オブジェクトコンテキストではないときに$ thisを使う 'エラーを受け取りました。しかし、私はもう一度それを試して、それは働いている!私はそれを1日と呼ぶかもしれないと考えてください... – superphonic

+0

@superphonicおそらく、あなたは 'self :: somethingElse()'をやったことがあります。オブジェクトを構築する静的メソッドを持っているのはちょっと混乱していますあなたが構築しているオブジェクトと同じクラスにあります:-) – jeroen

+1

それを置くと、よくなるでしょう:-) – superphonic