功能定义顺序是否重要?

时间:2011-03-29 04:45:35

标签: php function procedural-programming

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

例如,如果add_action指向尚未定义的函数?是否重要或者函数声明是否总是在其调用的任何代码之前?

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

7 个答案:

答案 0 :(得分:28)

如果函数是在调用之前或之后声明的,但函数应该在脚本中并且应该被加载,这并不重要。

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

some_func($a,$b);

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

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

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

some_func($a,$b);

答案 1 :(得分:7)

来自PHP manual

  

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

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

答案 2 :(得分:2)

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

答案 3 :(得分:2)

没有。
它不是C:P ...
正如您所见here,整个文件首先被解析然后执行 如果调用不存在的函数,php将抛出错误。

  

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

答案 4 :(得分:0)

只要在页面的某处声明它就无所谓了。

如图所示:

http://codepad.org/aYbO7TYh

答案 5 :(得分:0)

引用手册的User-defined functions部分:

  

之前不需要定义函数   它们被引用,除了a   函数是有条件定义的

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

答案 6 :(得分:0)

根据我的个人经验,在一些特殊情况下(比如,在函数内传递数组函数或函数等)。定义呼叫上方的功能是最佳选择。因此,有时这两个函数都不起作用,PHP也不会抛出错误。

在普通的php函数中,它并不重要。您可以使用这两种类型。