如何在另一个命名空间中调用方法

时间:2016-08-27 15:28:53

标签: php wordpress namespaces

是否可以在PHP中调用另一个命名空间中的方法?如果是这样,怎么样?

我正在尝试编写一个WordPress插件。为了遵守最佳实践,我将我的代码封装在自己的命名空间中以防止冲突。但是,当我尝试调用wp_get_current_user()函数时,出现错误:

Fatal error: Uncaught Error: Call to undefined function sln\wp_get_current_user()

摘自我的代码:

<?php

Namespace sln;

class SimpleLoginNotifications {


    function __construct() {

        $user_data = wp_get_current_user();

        add_action('wp_login', 'sln_send_login_notification');

    }


[...]


?>

1 个答案:

答案 0 :(得分:1)

在文件中声明名称空间sln时,将在该名称空间下假定所有函数/方法/常量/类。因此,如果未在wp_get_current_user()命名空间中声明sln,则需要使用其完全限定名称或脚本顶部的import via use来调用它。如果它在全局命名空间中,那么您需要使用前导反斜杠\wp_get_current_user()来限定它。