【问题标题】:Using SPLFixedArray in namespace在命名空间中使用 SPLFixedArray
【发布时间】:2012-02-22 04:31:40
【问题描述】:

我有一个这样声明的命名空间:

namespace MySpace {

    $array = new SPLFixedArray();

}

我得到的错误是:

致命错误:在第 25 行的 C:\xampp\htdocs\private\config.php 中找不到类“MySpace\SplFixedArray”

是否为所有 SPL 函数定义了命名空间,或者我在这里做错了什么? 抓头

【问题讨论】:

    标签: php namespaces spl


    【解决方案1】:

    要使用全局命名空间中的类,请在它们前面加上命名空间分隔符:

    $array = new \SplFixedArray;
    

    或者像任何其他命名空间类一样给它们起别名:

    use \SplFixedArray;
    // ...
    $array = new SplFixedArray;
    

    【讨论】:

    • 太棒了!谢谢,我在想它是一个全局命名空间......他们为什么不让这些方法在没有命名空间定义器的情况下成为全局的?喂。
    • 因为在命名空间代码中,所有东西都必须有一个命名空间。这使您可以定义自己的名为SplFixedArray 的类并将其粘贴在MySpace 中,而不会覆盖(与)全局类。您只需像 MySpace\SplFixedArray 而不是 \SplFixedArray 一样访问它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    相关资源
    最近更新 更多