質問

アイデア:

例(PHPの場合): 名前を設定するには: $ object-> name( 'name'); 名前を取得するには: $ object-> name();

引数がない場合:メソッドはゲッターとして使用され、そうでない場合はセッターとして使用されます。単純なゲッター/セッター用。なんてバカなの?

編集:回答をフォローアップする:インターフェースをできるだけ明示的にしたいので、取得と設定はあまり好きではありません。いくつかのプロパティしかない場合、私見もやり過ぎです。そこで、明示的なゲッター/セッターをいくつか使用して、クラス/オブジェクトに絞り込みたいと思います。

役に立ちましたか?

解決

もちろん、あなたのアプリケーションでそれが理にかなっているなら、あなたはそれをすることができます。関数は次のようになります。

public function name($val = null)
{
  if (is_null($val))
  {
    return $this->name;
  }
  else
  {
    $this->name = $val;
  }
}

他のヒント

問題は従うのが難しいだろうということです。 PHP5の__getと__setを使用したいので、変数を取得および設定する方が自然で、誰もが私が何をしているかを正確に知っています。 IE:

class myClass
{

    function __get($name)
    {
       return $this->array[$name];
    }
    function __set($name, $value)
    {
       $this->array[$name] = $value;
    }
    function print()
    {
       echo $this->array['test'];
    }
}
$obj = new myClass;
$obj->test = "Hi";
echo $obj->test; //echos Hi.
$obj->print(); //echos Hi.

__ call()マジックメソッドを使用して実行できます。

class Test {
    public function __call($name, array $args) {
        $variable =& $this->$name;
        if(!empty($args)) {
            $variable = $args[0];
        }
        return $variable;
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top