定義的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';
}
~~~