在php中声明空函数的使用

在php中声明空函数的使用,php,wordpress,Php,Wordpress,在深入查看word press核心代码时,我遇到了一个文件,其中有许多空函数,例如: /** * @ignore */ function apply_filters() {} 我真的不知道在php中声明空函数有什么用 我在第34-37行的wp admin/list-scripts.php中找到了这个 在第163-207行的wp include/plugin.php中重新声明了相同的函数,其中包含一些工作 我总共有两个问题 在php中声明空函数有什么用 为什么wordpress不显示任何致命

在深入查看word press核心代码时,我遇到了一个文件,其中有许多空函数,例如:

/**
 * @ignore
 */
function apply_filters() {}
我真的不知道在php中声明空函数有什么用

我在第34-37行的wp admin/list-scripts.php中找到了这个

在第163-207行的wp include/plugin.php中重新声明了相同的函数,其中包含一些工作

我总共有两个问题

在php中声明空函数有什么用


为什么wordpress不显示任何
致命错误:
,因为已经声明了相同的函数

我想wordpress会有条件地包含一个或另一个文件。wordpress的较低级别API要求定义并调用这些函数。扩展本身可以自由地实现或不实现函数,但是它至少必须提供空函数体。这背后的概念与OOP中的接口非常相似

  • 在PHP(和许多其他OOP语言)中,可以在接口中使用空函数(或者更准确地说,方法)。继承该接口的任何类都必须实现声明的函数。然而,上次我检查时(也就是2分钟前),WordPress并不是一个真正的OOP系统,所以请继续看2

  • list-scripts.php不是默认的WordPress文件-我在任何WP安装中都找不到它。您可能希望通过放置
    die('called')来进行测试在文件的顶部,并查看它是否得到执行。因此,WordPress不会遇到重复的函数声明,也不会引入致命错误

  • 现在,即使list-scripts.php是默认的WP文件,但在使用WP(以及一般的php)时,您经常会看到:

    if (!function_exists('apply_filters')) {
        function apply_filters($arg1, $arg2) {
            // code is poetry
        }
    }
    
    这样可以确保函数只有在以前没有声明过的情况下才被声明,并避免了致命错误