什么是 \ 在PHP中做?

例如, CSRF4PHP\FALSE, \session_id, , 和 \Exception:

public function __construct($timeout=300, $acceptGet=\FALSE){
    $this->timeout = $timeout;
    if (\session_id()) {
        $this->acceptGet = (bool) $acceptGet;
    } else {
        throw new \Exception('Could not find session id', 1);
    }
}
有帮助吗?

解决方案

\ (Backslash)是PHP 5.3中的名称空间分离器。

一个 \ 在函数开始之前代表 全局名称空间.

将其放置在此处确保所调用的函数来自全局名称空间,即使当前名称空间中的同名函数也有相同的函数。

其他提示

澄清潜在的混乱:

后斜线 才不是 意味着 类继承.

在下面的, Animal, Dog, Shepherd 不必上课,而只是 名称空间. 。意思是用来将名称分组在一起的东西 避免命名碰撞.

$myDog = new \Animal\Dog\Shepherd\GermanShepherd();

领导 \ 方法 Animal 在全球范围内被宣布。

名称空间

在php 5.3+中 \ 符号用于名称空间。它是指示名称空间的开始符号,并且还用作子名称名称之间的分离器。

请参阅有关的官方文件名称领域.

opcache

此外,在PHP 7.0+中,一些功能是 替换为opcodes 经过 opcache, ,这使得这些特定功能运行速度要快得多。但是,这仅在将函数放置在根名称空间中时才起作用。看到这个 讨论 关于这个话题。因此,除了命名领域, \ 间接影响代码优化。

以下本机功能受益于此效果:

"array_slice"
"assert"
"boolval"
"call_user_func"
"call_user_func_array"
"chr"
"count"
"defined"
"doubleval"
"floatval"
"func_get_args"
"func_num_args"
"get_called_class"
"get_class"
"gettype"
"in_array"
"intval"
"is_array"
"is_bool"
"is_double"
"is_float"
"is_int"
"is_integer"
"is_long"
"is_null"
"is_object"
"is_real"
"is_resource"
"is_string"
"ord"
"strlen"
"strval"

\ 用于名称空间中的PHP 5.3中。看 http://www.php.net/manual/en/language.namespaces.rationale.php 有关名称空间和PHP的更多信息。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top