媒体维基。函数怎么得到参数?

时间:2012-05-31 22:53:16

标签: php mediawiki

问题是关于PHP中的函数和参数。我正在为mediawiki阅读simple extension的代码。 它增加了回调函数:

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

然后定义了这个函数:

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

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

$awd_title = $article->getTitle();

我无法理解变量$article在调用时如何传递给函数?看起来它是在函数的定义中传递的(我知道它是错的),但我不明白它是如何通过的。 你呢?

1 个答案:

答案 0 :(得分:1)

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

在MediaWiki代码中的其他地方,调用在ArticleSaveComplete注册的回调(其中包含数组),正确的参数将在常规且可识别的函数调用中传递给函数调用或通过像call_user_func()这样的机制。

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

相关问题