Php 使用函数作为用名称空间声明的另一个函数的回调

Php 使用函数作为用名称空间声明的另一个函数的回调,php,wordpress,Php,Wordpress,我正在使用WordPress Sage Starter主题()。它使用名称空间来声明函数 我在lib/extras.php文件中有一个函数(my_function_comments),用于修改注释标记。此文件具有以下命名空间:命名空间根\Sage\Extras; 现在我需要在另一个文件templates/comments.php中将该函数用作回调函数,如下所示: <?php wp_list_comments(array('style' => 'ol',

我正在使用WordPress Sage Starter主题()。它使用名称空间来声明函数

我在lib/extras.php文件中有一个函数(my_function_comments),用于修改注释标记。此文件具有以下命名空间:命名空间根\Sage\Extras; 现在我需要在另一个文件templates/comments.php中将该函数用作回调函数,如下所示:

<?php wp_list_comments(array('style' => 'ol', 
                          'short_ping' => true,
                          'avatar_size' => 60,
                          'type' => 'comment',
                          'callback' => 'my_function_comments',
                          )); ?>

当然,我的函数注释不在此文件中,因此我对wp\u list\u注释的调用编码如下:

<?php use Roots\Sage\Extras; ?>
<?php wp_list_comments(array('style' => 'ol', 
                          'short_ping' => true,
                          'avatar_size' => 60,
                          'type' => 'comment',
                          'callback' => 'Extras\my_function_comments',
                          )); ?>

好的,回调函数显然是错误的,但我不知道如何编写它来正确调用它

也许有人能帮我解决这个问题

谢谢大家!


PS.名称空间相关文档可在此处找到(名称空间部分):。也许这会有助于回答我的问题

正如@Wesee在评论中所说,将函数用作回调的方法是将整个路径放入函数。然后我删除了这一行:

<?php use Roots\Sage\Extras; ?>

并使用此选项调用wp_list_注释:

<?php wp_list_comments(array('style' => 'ol', 
                      'short_ping' => true,
                      'avatar_size' => 60,
                      'type' => 'comment',
                      'callback' => 'Roots\Sage\Extras\my_function_comments',
                      )); ?>


谢谢你们

函数与名称空间声明无关,只与类(及其方法)有关。如果
包含函数所在的文件,并且该文件在全局范围内,则可以访问该文件。但是如果它是一个方法,那么您应该看到它的可访问性属性(如果是静态的,那么
Extras\Class::my_function\u comments
。如果不是,那么
Extras\Class->my_function\u comments
)在回调中使用完整的名称空间(在字符串内部)。wordpress执行回调时需要名称空间,而不是在声明回调时。你可以省略“use”这一行。谢谢你们!!我将尝试发布解决方案。非常感谢。函数不在类中,而是在具有命名空间的文件中@WeSee option解决了我的问题。我将发布一个解决方案供大家了解。