根据调用函数的语法,它应该是期望的 方法的名称和包含参数的数组
即
__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如何处理?
见解赞赏!!