__call()的标量参数

时间:2015-01-09 03:19:10

标签: php

根据调用函数的语法,它应该是期望的 方法的名称和包含参数的数组

即      __call(method_name,array_of_args)

我将标量传递给第二个参数,并试图理解 它是如何工作的。

下面是一段代码。

public function __call($method,$par)
{

if ($method=='display')
    {
    if (is_array($par[0]))
          {$this->displayarray($par[0]);}
    else
          {$this->displayscalar($par);}
    }
}

public function displayarray($par)
{
$temp=implode(',',$par);
echo $temp."<br />";
}  /*This works as expected*/

public function displayscalar($par)
{
$temo=implode(',',$par);
echo $temo."<br/>"; /* This line gives the scalar as the output*/
/*But why should $par be treated as an array?*/
echo $par."<br/>"; /*This line doesn't print anything, Why?*/
}

/*Below are the parameters supplied*/
$obj=new testoverride();
$obj->display('TestVector');
$obj->display(array(1,2,3,5,6));

我来自类型转换的C ++世界并且遇到了困难 理解当标量传递给预期数组时PHP如何处理?

见解赞赏!!

0 个答案:

没有答案