(백슬래시)는 PHP(5.3+)에서 무엇을 합니까?

의 개요PHP로 할 수 있습니까?

예를 들어 CSRF4와 같이PHP에는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의 네임스페이스 구분자입니다.

A [ Global Namespace ]를 나타냅니다.

현재 이름 공간에 같은 이름의 함수가 있더라도 호출된 함수는 글로벌 이름 공간에서 가져온 것입니다.




네임스페이스

PHP 5.3+에서는 백슬래시심볼은 네임스페이스에 사용됩니다.네임스페이스를 나타내기 위한 시작 기호이며 하위 네임스페이스 이름 사이의 구분 기호로도 사용됩니다.

네임스페이스에 대한 공식 문서를 참조하십시오.

오퍼캐시

또한 PHP 7.0+에서는 일부 함수가 OPCache의해 opcode로 대체되어 이러한 특정 함수의 실행 속도가 훨씬 빨라집니다.그러나 이 기능은 기능이 루트 이름 공간에 배치되어 있는 경우에만 작동합니다.이 토픽에 대해서는, 다음의 설명을 참조해 주세요.그래서 네임스페이스 외에도간접적으로 코드 최적화에도 영향을 줍니다.

이 효과의 이점은 다음과 같습니다.

"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" 



잠재적인 혼란을 명확히 하기 위해:

백슬래시는 클래스 상속을 의미하지 않습니다.

다음에서Animal,Dog,Shepherd클래스가 아니라 네임스페이스일 뿐이죠이름 충돌을 피하기 위해 이름을 그룹화하는 데 사용되는 무언가를 의미합니다.

$myDog = new AnimalDogShepherdGermanShepherd(); 

선두의수단Animal글로벌 스코프에서 선언되었습니다.




PHP 5.3에서 네임스페이스에 사용됩니다.네임스페이스 및 PHP에 대한 자세한 내용은 http://www.php.net/manual/en/language.namespaces.rationale.php을 참조하십시오.