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

a는 무엇 않습니다 \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의 네임 스페이스 구분자입니다.

\함수 시작 전의 A 는 전역 네임 스페이스를 나타냅니다 .

그것을 넣으면 현재 네임 스페이스에 같은 이름의 함수가 있더라도 호출 된 함수가 글로벌 네임 스페이스에서 온 것입니다.


답변

네임 스페이스

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

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

Opcache

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


답변

잠재적 혼동을 명확히하려면 :

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

다음에, Animal, Dog, Shepherd클래스, 단순히 될 필요가 없습니다 네임 스페이스 . 이름 충돌피하기 위해 이름 을 그룹화하는 데 사용되는 것을 의미합니다 .

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

주요 \수단 Animal은 전 세계적으로 선언되었다.


답변

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


답변