跳到主要内容

定义的Hook方法支持多参数传参,如果在php文件中直接通过静态方法doHook调用(如插件中使用),传的参数请用数组组装起来,同时支持引用。如:

<?php
$a='第一个参数,支持引用';
$b='第二个参数,不支持引用';
$c=1;
Hook::doHook('hookName', [&$a, $b, $c]);
?>

如果在模板中通过 模板标签 调用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';
}
提示

如果函数的参数有引用,传参也要引用,请保持前后一致。