2

広く文書化されていることを質問して申し訳ありませんが、私は非常に多くの異なるアプローチに出くわし、非常に混乱しています。

  1. public static
  2. public $foo
  3. global、それは悪い方法のようです
  4. define()
  5. const constant = 'constant value';

ここでやろうとしていることの複雑さを過小評価していますか?

class MyClass
    {

    $foo = 'bar';

    function DoStuff()
        {
        echo $foo;
        }

    } //MyClass
4

4 に答える 4

5
Class Example
{
    private $foo = 5;

    function bar()
    {
        echo $this->foo;
    }
}
于 2012-08-15T09:08:13.270 に答える
4

それがあなたのクラスでのみ利用可能であるべきなら、私はこれを提案します:

class MyClass {
   private $foo = 'bar';

   public function DoStuff() {
      echo $this->foo;
   }

}

他のクラスから利用できるようにする必要がある場合は、getterとsetterを実装する必要があります。

于 2012-08-15T09:09:29.067 に答える
1

静的変数は、クラスのインスタンスがなくても使用でき、すべてのインスタンス間で共有されます

constは定数です-値は変更できません

パブリックプロパティは特定のインスタンスに属し、インスタンスだけでなく、任意のオブジェクトによって変更できます。

すべてがデータを宣言するための有効な方法であり、必要なものによって異なります。

データを変更できないようにする必要がありますか?(const)データをクラスの外に表示する必要がありますか?(パブリック)インスタンス間でデータを共有する必要がありますか(静的。プライベート静的も使用できることに注意してください)

于 2012-08-15T09:13:25.867 に答える
1

public $foo誰もが同じようにアクセス$my = new MyClass(); $my->fooでき、設定できる変数です

public static $foo誰もが同じようにアクセスできるMyClass::fooが設定できない変数です

global $foo誰もが設定してどのようになることができる変数です$foo

define("FOO","myString")一種のグローバルですが、それは通り抜けることはできますが、設定することはできFOOません

const foo静的なようなものです

于 2012-08-15T09:13:49.947 に答える