Kenichi Ando(Neo,Inc)
ando****@neo-n*****
2007年 12月 6日 (木) 00:58:34 JST
bossatamaです。 On Wed, 5 Dec 2007 23:47:01 +0900 Kenji <kenji****@club*****> wrote: > Kenji です。 > > > On Wed, 05 Dec 2007 22:22:54 +0900 > "Kenichi Ando(Neo,Inc)" <ando****@neo-n*****> wrote: > > > bossatamaです。 > > > > > > function _remap($method) > > > > > { > > > > > if ($method == 'some_method') > > > > > { > > > > > $this->$method(); > > > > > } > > > > > else > > > > > { > > > > > $this->default_method(); > > > > > } > > > > > } > > > > > > $this->$method();が > > > > > $this->method(); > > > > > > > > > > だと思われます。いかがでしょうか。 > > > > > > > > typo ですね。 > > > > > > と書きましたが、typo でなくてこれで正しい? > > > methodやdefault_methodは架空のメンバー関数ですし、 > > $this->$のような使い方は、foreachのようなケースで > > 使われるのではないでしょうか? > > this変数の次は関数名だと思います。 > > PHP では、関数名を変数で書けます。 それはメンバー変数のことではないでしょうか? $this->メンバー変数 例: var $words = "test"; function _remap($method) { if ($method == 'some_method') { $this->word();←メンバー変数呼び出し } else { $this->default_method(); } } > > このケースでは、 > > $this->$method() は、$this->some_method() になります。 > > ただの typo とも思えますが、 > some_method 以外は default_method が面倒をみる、 > というコードなのかな?とも思えるわけです。 動くのかな?と思い、試してみました。 例: function _remap($method) { if ($method == 'some_method') { $this->$method($method); } else { $this->default_method(); } } function some_method($string) { return $string; } これはポイントずれてますか? 確かに期待通り、「some_method」が帰ってきます。 とてもユーザガイドはこれを意図しているとは思えないのですが・・? > > //bossatama