定义的Hook方法支持多参数传参,如果在php文件中直接通过静态方法**doHook**调用(如插件中使用),传的参数请用数组组装起来,同时支持引用。如:
~~~
<?php
$a='第一个参数,支持引用';
$b='第二个参数,不支持引用';
$c=1;
Hook::doHook('hookName',array(&$a,$b,$c));
?>
~~~
如果在模板中通过模板标签`{hook:}`调用Hook,同样也支持多参数和变量引用,注意这里参数不用组装成数组,如:
~~~
{php}
$a='模板中的参数,支持引用';
$b='模板中的参数,不支持引用';
{/php}
{hook:hookName(&$a,$b)}
~~~
在hook文件中如何接收参数呢,和平常的php写法一样,直接function接收就可以了,如:
~~~
public function hookName(&$a,$b,$c=''){
echo 'a参数='.$a.'<br>';
echo 'b参数='.$b.'<br>';
echo 'c参数='.$c.'<br>';
//更改$a参数的值
$a='this is test';
}
~~~