最近、私はPHPゲームを強化しています。 JavaScriptから来て、オブジェクトモデルが少し分かりやすいとわかりました。PHPプロパティのアクセスとドル記号
私はいくつかの不具合にぶつかって、私がドキュメントで見つけられないようなことを明確にしたいと思っていました。使用せずに
class myClass {
public $myProp = "myProp";
static $anotherProp = "anotherProp";
}
我々は(myClass
が$myClass
という変数で参照されていると仮定して)使用してアクセスすることができます$myProp
のパブリック変数で$myClass->myProp
:PHPのクラスを定義するとき、あなたはそのようなプロパティを定義することができ
ドル記号の
::
を使用して静的変数にのみアクセスできます。したがって、$myClass::$anotherProp
のような静的変数にはドル記号でアクセスできます。
質問:なぜドル記号は::
で、->
では使用できないのですか?
EDIT
これは私が仕事(およびない)であろうと仮定するコードである。
class SethensClass {
static public $SethensProp = "This is my prop!";
}
$myClass = new SethensClass;
echo $myClass::$SethensProp;
興味深い... 1つのupvoteと1つのクローズリクエスト。 – Sethen
[あなたの他の質問](http://stackoverflow.com/q/17681253/20578)についてのコメントをお寄せいただきありがとうございます(個人的な質問のシリーズとして尋ねられた場合、私は個人的にはうまくいったと思います。http: //stackoverflow.com/questions/15270843/what-does-plus-operator-mean-in-underscore-js)でも、「ベストプラクティスはこれを行うと言います」と言っても意味がありません。あなたが何かが "ベストプラクティス"だと思う理由を説明できないのであれば、それが "ベスト"であることをどのように知っていますか?異なる状況では、さまざまなことが最良です。 –
@ PaulD.Waiteいいですね。開発を進めようとする開発者として、特定の図書館がベストプラクティスに従って学習するかどうかについて質問することは、私の心の中で受け入れられます。大規模なコミュニティではそれをサポートしていないため、非常にイライラしています。私は、特定の図書館がベストプラクティスを使って書かれたとは思っていません。私はそれが私が間違っていないことを確認しようとしています。 – Sethen