\ (反斜杠) 在 PHP (5.3+) 中有什么作用?

2022-08-30 06:16:51

在 PHP 中,a 做什么?\

例如,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);
    }
}

答案 1

\(反斜杠)是 PHP 5.3 中的命名空间分隔符。

函数开头前的 A 表示全局命名空间\

将其放在此处将确保调用的函数来自全局命名空间,即使当前命名空间中存在同名的函数也是如此。


答案 2

命名空间

在 PHP 5.3+ 中,命名空间中使用反斜杠符号。它是指示命名空间的开始符号,也用作子命名空间名称之间的分隔符。\

请参阅有关命名空间的官方文档。

奥普卡什

此外,在 PHP 7.0+ 中,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"

推荐