php - 如何从命名空间 PHP 调用全局函数类

标签 php namespaces

有什么办法可以避免经常使用反斜杠吗?

现在,如果我使用命名空间并在其中调用全局的东西,我必须使用反斜杠:

namespace foo;
$a = new \my\name(); // instantiates "my\name" class
echo \strlen('hi'); // calls function "strlen"
$a = \INI_ALL; // $a is set to the value of constant "INI_ALL"

在那种情况下,命名空间内的代码变得非常丑陋,有什么办法可以避免这种情况???

示例取自该网址:http://www.php.net/manual/en/language.namespaces.faq.php

但我的问题在于,如果我需要从命名空间调用一些内置类,我必须在名称前面使用反斜杠,我能以某种方式避免它吗?

最佳答案

全局命名空间中的常量和函数不必在前面加上反斜杠。 PHP 将回退到它自己的全局命名空间。 PHP 手册中有一整章对此进行了解释:

Inside a namespace, when PHP encounters a unqualified Name in a class name, function or constant context, it resolves these with different priorities. Class names always resolve to the current namespace name. […] For functions and constants, PHP will fall back to global functions or constants if a namespaced function or constant does not exist.

关于php - 如何从命名空间 PHP 调用全局函数类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12157238/

相关文章:

javascript - chart.js 中条形图中的交替条未标记

javascript - 我如何使用 jquery 和 php 显示每个用户的通知?

php - 如何使用 PHP 和 MySQL 在复选框中使用 boolean 值

php - 在 Codeigniter 中设置表单的 'name' 属性

c++ - 使用命名空间和静态方法时遇到问题

c++ - 关于 C++ 全局命名空间的困惑

database - 在键值存储中管理键的好方法是什么?

php - 类文件如何使用命名空间和使用包含在另一个文件 php 中?

XML 架构 - elementFormDefault 是不合格的,但使用了命名空间前缀

php - 如果客户已登录,Woocommerce 对简单产品的全局百分比折扣