Hook

<br/> >i 本文档的最新修订日期是: > **2023-05-27** # Hook :: 添加钩子或调用钩子。 # add() ## 说明 **<font color="#0099ff"><font color="#ff6600">Hook</font> :: <font color="#ff6600">add</font> ( <kbd>传参数组</kbd> )</font>** 添加(注册)一个钩子。 此方法 <font color="#c7254e">`支持`</font> 中文参数名。 此方法 <font color="#c7254e">`支持`</font> 参数简写。 ## 参数 * **<font color="#ff6600">`list(列表)`</font>** <font color="#0099ff">`(Array)`</font> <font color="#BBBBBB">`<必须>`</font> <font color="#19c58c">`可简写`</font>: 需要添加(注册)的钩子的列表。 数组为一个二维数组,第一维数组的键为钩子的名称,值为一个数组。在第二维数组中无需指定键名,值为需要执行的模块方法名称(无需添加 <font color="#c7254e">`plugin\`</font> 前缀)。第二维数组中元素的先后顺序即为模块方法执行的顺序。 ## 返回 无。 ## 示例 为钩子demohook添加两个模块方法。 ```php \core\Hook::add([ [ 'demohook' => ['ClassA::func1','ClassB::func2'] ] ]); ``` # call() ## 说明 **<font color="#0099ff"><font color="#ff6600">Hook</font> :: <font color="#ff6600">call</font> ( <kbd>传参数组</kbd> )</font>** 调用指定的钩子。 此方法 <font color="#c7254e">`支持`</font> 中文参数名。 此方法 <font color="#c7254e">`支持`</font> 参数简写。 ## 参数 * **<font color="#ff6600">`name(名称)`</font>** <font color="#0099ff">`(String)`</font> <font color="#BBBBBB">`<必须>`</font> <font color="#19c58c">`可简写`</font>: 指定钩子的名称。 * **<font color="#ff6600">`parameter(参数)`</font>** <font color="#0099ff">`(Array)`</font> <font color="#BBBBBB">`[]`</font>: 可传入供钩子方法使用的参数。 参数的数据类型必须为 <font color="#c7254e">`Array`</font> ,如果需要为钩子执行的方法传递多个参数或变量,请先将这些参数或变量组合为一个数组,在方法中通过数组元素来访问这些参数或变量。 ## 返回 <font color="#0099ff">`(Array)`</font> 类型。 如果钩子方法对传入的参数进行了修改,返回的是修改后的参数。 如果钩子方法没有对传入的参数进行修改,或钩子方法的返回值不是一个数组,则返回值与传入的参数一致。