媒体维基.函数是如何获得参数的


media wiki. how did function get argument?

问题是关于PHP中的函数和参数。我正在阅读媒体维基的简单扩展代码。它增加了回调函数:

$wgHooks['ArticleSaveComplete'][] = 'fnAutoWikiDump';

然后是这个函数的定义:

function fnAutoWikiDump(&$article, &$user, &$text, &$summary, &$minoredit, 
                    &$watchthis, &$sectionanchor, &$flags, &$revision){...}

在这个函数中,我可以访问类 $article 的成员:

$awd_title = $article->getTitle();

我不明白变量$article在调用函数时是如何传递给函数的?看起来它是在函数的定义中传递的(我知道这是错误的),但我不明白它是如何传递的。是吗?

您发布的代码和链接中的示例代码显示实际调用函数的详细信息。 它只是注册为回调。 回调函数的部分用处在于,您通常根本不需要自己调用它们,而是由使用它们的进程自动调用它们。

在 MediaWiki 代码中的其他地方,调用向ArticleSaveComplete注册的回调(有一个数组),正确的参数在常规且可识别的函数调用中或通过 call_user_func() 等机制传递给函数调用。

定义

回调以使用该接口时,作为程序员,您的责任只是确保函数定义以正确的顺序和正确的名称获取正确数量的参数。 如何调用它的细节取决于调用它的机制。