在下面的脚本中,声明项目的顺序是否重要?
例如,如果add_action指向尚未定义的函数?是否重要或者函数声明是否总是在其调用的任何代码之前?
add_action('load-categories.php', 'my_admin_init');
function my_admin_init(){
//do something
}
答案 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)
答案 5 :(得分:0)
引用手册的User-defined functions部分:
之前不需要定义函数 它们被引用,除了a 函数是有条件定义的
所以,基本上:你可以在编写定义之前调用一个函数 - 当然,当试图调用它时,PHP必须能够看到该定义。
答案 6 :(得分:0)
根据我的个人经验,在一些特殊情况下(比如,在函数内传递数组函数或函数等)。定义呼叫上方的功能是最佳选择。因此,有时这两个函数都不起作用,PHP也不会抛出错误。
在普通的php函数中,它并不重要。您可以使用这两种类型。