【问题标题】:How to call a method in another namespace如何调用另一个命名空间中的方法
【发布时间】:2017-01-04 02:22:05
【问题描述】:

是否可以在 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');

    }


[...]


?>

【问题讨论】:

  • 你必须从根目录开始,然后是命名空间

标签: php wordpress namespaces


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-02
    • 2021-01-14
    • 2021-01-06
    • 2011-09-28
    • 1970-01-01
    • 2016-06-22
    • 2013-01-08
    • 1970-01-01
    相关资源
    最近更新 更多