[PHP-users 14221] Re: 引数の数を調べる

KOYAMA Tetsuji php-users@php.gr.jp
2003年 3月 24日 (月) 10:36:07 JST


  小山です。
  なかなか興味深く議論を読んでいました。

At Mon, 24 Mar 2003 19:00:06 +0900,
Osamu Shigematsu wrote:
> そうは、イカの金太郎飴。(古
> 
> <?php
> 
> $dummy = 1;
> class hoge{
>         var $test;
> 
>         function func($arg1, $arg2, $arg3 = 1){
>                 echo count(get_defined_vars());
>         }
> 
>         function x($x){
>                 $this->test = $x;
>         }
> };
> 
> $obj = new hoge;
> 
> $obj->x(1);
> $obj->func(1,2);
> 
> ?>

  む、関数スコープにオブジェクトのプロパティは直接入ってこないはず…と
か思って、

class hoge {
    function func($arg1, $arg2, $arg3 = 1) {
        $vars = get_defined_vars();
        echo count($vars);
        print_r($vars);
    }
}
$obj = new hoge;
$hoge->func(1,2);

としてみたら...、なるほど! $this かぁ。

  じゃぁということで、

class hoge {
    function func($arg1, $arg2, $arg3 = 1) {
        $num = count(get_defined_vars());
        if (isset($this))
           --$num;
        echo $num;
    }
}

これでどうでせう?

-- 
	小山 哲志@ビート・クラフト
	koyama@beatcraft.com
	koyama@hoge.org



PHP-users メーリングリストの案内