2012-03-13 23 views
6

私はクラスを持っていて、いくつかの静的な、いくつかの静的なメソッドがあります。静的なプロパティを持っています。私はすべてのメソッドの内部でそのプロパティにアクセスしようとしていますが、私は正しい構文を理解できません。私が持っているもの静的および非静的メソッドを使用して静的プロパティにアクセスしますか?

はこれです:

class myClass { 
    static public $mode = 'write'; 
    static public function getMode() { 
     return myClass::$mode; 
    } 
    public function getThisMode() { 
     return $this->mode; 
    } 
} 

誰も私にこの1のための実際の構文を伝えることはできますか?静的プロパティについて

答えて

16

は使用も非静的関数

return self::$mode; 

に、静的プロパティは、オブジェクトがインスタンス化されたか否かが存在するので、この理由は、内部に以下。したがって、私たちは同じ既存プロパティをそのまま使用しています。

+1

うん、:

$myClass = new myClass(); echo $myClass::$mode; 

はこれを好きなわけではありません。ありがとう。 className :: $ modeが動作しないのは少し不思議です私はあなたの質問をすぐに受け入れてくれます。 – DanRedux

+0

@DanRedux乾杯。最初の関数が何も返さないと確信していますか? – yehuda

+0

@DanReduxはあなたのコードをチェックしています。 myClassを使用しても問題ありません。 – yehuda

3

クラス外にいる場合は、$を忘れないようにしてください。そうしないと、このエラーも表示されます。例えば、このようにそれを呼び出すようにしてください:働い

echo $myClass::mode; 
+0

Ah!それは間違いなくそのようにうまくいく。 –

関連する問題