質問
アイデア:
例(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;
}
}
所属していません StackOverflow