[Codeigniter-users] ユーザガイドの修正(general/controllers.html#remapping)

Back to archive index

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




Codeigniter-users メーリングリストの案内
Back to archive index