\
PHPで行いますか?
たとえば、 CSRF4PHP has \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);
}
}
\
(バックスラッシュ)は、PHP 5.3。
\
は、関数の先頭の前に Global Namespace を表します。
そこに置くと、現在の名前空間に同じ名前の関数が存在する場合でも、呼び出される関数がグローバル名前空間からのものであることが保証されます。
潜在的な混乱を明確にするには:
バックスラッシュはしないことを意味するクラスの継承。
以下では、Animal
、Dog
、Shepherd
はクラスである必要はなく、単に namespaces です。 名前の衝突を避ける に名前をグループ化するために使用される意味。
$myDog = new \Animal\Dog\Shepherd\GermanShepherd();
先頭の\
は、Animal
がグローバルスコープで宣言されたことを意味します。
名前空間
In PHP 5.3+バックスラッシュ\
シンボルは名前空間で使用されます。これは、名前空間を示す開始記号であり、サブ名前空間名の間の区切り文字としても機能します。
namespacingに関する公式ドキュメントを参照してください。
Opcache
さらにPHP 7.0+では、一部の関数はopcodes)にOPCacheに置き換えられ、特定の関数は非常に高速に実行されますが、これは、関数がルート名前空間に配置されている場合にのみ機能します。discussionこのトピックです。したがって、ネームスペースに加えて、\
は、コードの最適化にも間接的に影響します。
次のネイティブ関数は、この効果の恩恵を受けます。
"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に関する情報。