2011-01-25 13 views
97

\ làm gì trong PHP? "

Ví dụ, https://github.com/foxbunny/CSRF4PHP/blob/60d9172b7f0cd93346cac9065fb17182854ebf1c/CsrfToken.php#L80-L87\FALSE, \session_id, và \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); 
    } 
} 
+32

Làm cho mã ít đọc được hơn. Nhưng đối với [tham khảo: Biểu tượng này có ý nghĩa gì trong PHP] (http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – mario

+0

@mario chủ đề stackoverflow rất đẹp. Cảm ơn bạn đã liên kết :) – Alfred

+0

Tôi đoán câu hỏi này nên được đóng lại nhưng tôi không thể tự đóng chủ đề. – Alfred

Trả lời

132

\ (backslash) là tách không gian tên trong PHP 5.3.

A \ trước khi bắt đầu hàm đại diện cho Global Namespace.

Đặt nó ở đó sẽ đảm bảo rằng hàm được gọi là từ không gian tên chung, ngay cả khi có hàm bằng cùng tên trong không gian tên hiện tại.

+1

Cảm ơn! bạn đã tìm thấy nó bằng cách sử dụng google hoặc bạn đã biết điều này: P? – Alfred

+3

Tìm thấy nó thông qua googling thông minh. Tôi chưa có cơ hội sử dụng PHP 5.3 và đã quan tâm đến câu trả lời. Mất một phút nhưng tôi tìm thấy nó. –

+0

Bạn vẫn có các cụm từ tìm kiếm bạn đã sử dụng trong google? – Alfred

8

Để làm rõ sự nhầm lẫn tiềm năng:

Các xuyệc ngược không bao hàm lớp thừa kế.

Trong các trường hợp sau, Animal, Dog, Shepherd không nhất thiết phải là lớp học mà chỉ đơn giản là namespaces. Có nghĩa là một cái gì đó được sử dụng để nhóm các tên lại với nhau để avoid naming collisions.

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

Hàng đầu \ có nghĩa là Animal được khai báo trong phạm vi toàn cầu.