27

在下面的脚本中,声明项目的顺序是否重要?

例如,如果 add_action 指向一个尚未定义的函数?函数声明是否重要还是应该总是在调用它的任何代码之前?

add_action('load-categories.php', 'my_admin_init');
function my_admin_init(){
//do something
}
4

7 回答 7

33

不管函数是在调用之前还是之后声明的,但函数应该在脚本中并且应该被加载。

这是第一种方法,它将起作用:

some_func($a,$b);

function some_func($a,$b)
{
    echo 'Called';
}

这是第二种方法,也可以:

function some_func($a,$b)
{
    echo 'Called';
}

some_func($a,$b);
于 2011-03-29T04:49:42.713 回答
10

PHP 手册

函数在被引用之前不需要定义,除非一个函数是有条件地定义的,如下面的两个例子所示。

然而,虽然这更多是个人喜好,但我强烈建议将您实际使用的所有函数包含在外部functions.php文件中,然后在主 PHP 文件的最顶部使用require_once()include_once()(取决于口味)。这更符合逻辑——如果其他人正在阅读您的代码,那么很明显您正在使用自定义函数并且它们位于functions.php. 节省了大量的猜测 IMO。

于 2011-03-29T04:54:11.777 回答
3

您可以在定义之前调用函数,首先解析文件然后执行。

于 2011-03-29T04:52:00.093 回答
2


,它不是 C :P ...
正如您在此处看到的,整个文件首先被解析然后执行。
如果调用了一个不存在的函数,php 会抛出一个错误。

致命错误:调用未定义的函数

于 2011-03-29T05:00:55.917 回答
1

根据我个人的经验,在某些特殊情况下(例如,在函数中传递数组或在函数中传递函数等等)。最好在调用上方定义函数。因此,有时函数都不起作用,PHP 也不会抛出错误。

在普通的php函数中,没关系。您可以使用这两种类型。

于 2017-12-04T13:07:51.137 回答
0

没关系,只要在页面某处声明即可。

如此处所示:

http://codepad.org/aYbO7TYh

于 2011-03-29T04:50:50.633 回答
0

引用手册的用户定义函数部分:

函数在被引用之前不需要定义,除非函数是有条件定义的

所以,基本上:您可以在编写定义之前调用一个函数——但是,当然,PHP在尝试调用它时必须能够看到该定义。

于 2011-03-29T04:53:07.923 回答