0

これは私のコードです。私が欲しいのは$a、メソッドにプロパティ値を割り当てることです。オブジェクトの初期化後またはメソッド内で呼び出すことなく、メソッドset_a()内で同じ値を取得する必要があり、どちらのメソッドにもパラメーターを渡したくありません。これを行う他の方法はありますか?get_a()set_a()get_a()

class simple
{
    public $a;

    public function set_a()
    {
        $this->a = "ABC"; //need this value in get_a()
    }

    public function get_a()
    {
        echo $this->a; //should referenced from set_a()
    }
}

$foo = new simple();
echo $foo->get_a(); //output should be "ABC"
//or
echo $foo->a; //output should be "ABC"
4

1 に答える 1

3

クラスでプロパティを初期化する必要があります。

class simple
{
    public $a='ABC';
    //...
}

またはコンストラクターでそれを行います:

class simple
{
    public $a;
    public function __construct($a='ABC')
    {
       $this->a=$a;
    }
}

-2 番目の方法は、定数式だけでなく初期化できるため、より優れています(最初のケースでは複雑な式を使用できません)。ただし、値の初期化が複雑すぎるもの (関数呼び出しなど) に依存している場合は、コンストラクター内で目的の動作を定義する必要があります。

最初のケースで許可される内容の詳細については、このリファレンスを参照してください。

于 2013-10-31T13:17:51.517 に答える