Php 如何引用函数?
我正在学习如何在mediawiki中使用。我也是PHP新手。 可以通过将下一行放入LocalSettings.php来添加常规钩子处理程序:Php 如何引用函数?,php,hook,mediawiki,Php,Hook,Mediawiki,我正在学习如何在mediawiki中使用。我也是PHP新手。 可以通过将下一行放入LocalSettings.php来添加常规钩子处理程序: $wgHooks['event'][] = 'function'; 假设我在my.php文件中编写了myfunction。如何从LocalSettings.php指向此函数 编辑。我已经在我的.php文件中编写了一些函数。如何引用此函数? 我应该告诉mediawiki在哪里可以找到这个函数。我不知道怎么做。 我应该写“$wgHooks['event'][
$wgHooks['event'][] = 'function';
假设我在my.php
文件中编写了myfunction
。如何从LocalSettings.php指向此函数
编辑。我已经在我的.php文件中编写了一些函数。如何引用此函数?
我应该告诉mediawiki在哪里可以找到这个函数。我不知道怎么做。
我应该写
“$wgHooks['event'][]='my.php:function'
。或者我应该将
my.php文件包含到LocalSetting中,然后只写'$wgHooks['event'][='function'
我不确定我是否完全理解您想要什么,但是如果您想调用一个用户定义的函数,可以使用以函数名称为参数的函数。您必须修改该文件,以便该函数可用
call_user_func('myfunction ', array());
我不确定我完全理解您想要的是什么,但是如果您想要调用一个用户定义的函数,您可以使用以函数名为参数的函数。您必须修改该文件,以便该函数可用
call_user_func('myfunction ', array());
根据我从mediawiki文档中读到的内容,您需要创建一个扩展,并在扩展中安装钩子。在my.php中,您将编写:
// $wgHooks is a global variable
$wgHooks['event'][] = 'function';
希望我理解正确
扩展文档
根据我从mediawiki文档中读到的内容,您需要创建一个扩展,并在扩展中安装钩子。在my.php中,您将编写:
// $wgHooks is a global variable
$wgHooks['event'][] = 'function';
希望我理解正确
扩展文档
正如前面所说,您需要将带有函数名的字符串(或字符串数组等)推送到hook数组中
AFAIK,当触发钩子时,它们将被调用。因此,它将取决于my.php文件中的函数声明。使用myfunction
,它应该是
$wgHooks['event'][] = 'myfunction';
正如前面所说,您需要将带有函数名的字符串(或字符串数组等)推送到hook数组中
AFAIK,当触发钩子时,它们将被调用。因此,它将取决于my.php文件中的函数声明。使用myfunction
,它应该是
$wgHooks['event'][] = 'myfunction';
您在PHP中通过引用函数。回调是其中之一:
'myFunc'
array('MyClass','myFunc')
array($myObj,'myFunc')
函数($x,$y){/*PHP-code*/}
(这只是PHP5.3+,但最新版本的MediaWiki也是如此)call\u user\u func($callback,$arg1,$arg2)
调用这些回调分别相当于以下内容:
myFunc($arg1,$arg2)代码>
MyClass::myFunc($arg1,$arg2)代码>
$myObj->myFunc($arg1,$arg2)代码>
$x
和$y
替换为$arg1
和$arg2
myFunc
),则回调也将失败。您可以在MediaWiki中与第二个表单一起使用,该表单通常通过以下方式完成:
通过这种方式,您可以从
LocalSettings.php
加载MyExtension.php
(这是一个仅包含配置设置的小文件),并且MyExtension.body.php
(包含所有代码)仅在实际使用扩展名的请求中加载。您在php中通过调用函数。回调是其中之一:
'myFunc'
array('MyClass','myFunc')
array($myObj,'myFunc')
函数($x,$y){/*PHP-code*/}
(这只是PHP5.3+,但最新版本的MediaWiki也是如此)call\u user\u func($callback,$arg1,$arg2)
调用这些回调分别相当于以下内容:
myFunc($arg1,$arg2)代码>
MyClass::myFunc($arg1,$arg2)代码>
$myObj->myFunc($arg1,$arg2)代码>
$x
和$y
替换为$arg1
和$arg2
myFunc
),则回调也将失败。您可以在MediaWiki中与第二个表单一起使用,该表单通常通过以下方式完成:
这样,您就可以从
LocalSettings.php
和MyExtension.body.php
(包含所有代码)加载MyExtension.php
(这是一个只有配置设置的小文件)仅在实际使用扩展名的请求中加载。我是否应该将my.php文件包含到LocalSettings.php?是的,请参阅。我是否应该将my.php文件包含到LocalSettings.php?是的,请参阅。但我不想创建扩展名。我只想在某个事件(hook)上运行函数。您需要在mediawiki中包含my.php,以便能够安装事件处理程序。简单的方法是创建一个基本扩展。“难”的方法(实际上不是那么难,但不好的做法)是修改mediawiki源代码,但这就是扩展的目的:能够在不修改核心的情况下包含自己的源代码。但我不想创建扩展。我只想在某个事件(hook)上运行函数。您需要在mediawiki中包含my.php,以便能够安装事件处理程序。简单的方法是创建一个基本扩展。“困难”的方法(实际上不是那么困难,但不好的做法)是修改mediawiki源代码,但这就是扩展的目的:能够包含您自己的源代码