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


172

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);
    }
}

1
@mario 아주 좋은 stackoverflow 주제. 링크 주셔서 감사합니다 :)
Alfred

이 질문을 마무리해야한다고 생각하지만 주제를 직접 닫을 수는 없습니다.
Alfred

5
중복이지만 나쁜 질문은 아닙니다. 그러나 제목에 "백 슬래시"를 추가하면 다른 사람이 Google에 쉽게 접근 할 수 있습니다.
마리오

1
그들이 더 이상 메신저를 쏘지 않는다는 것을 인식하는 것이 중요합니다. 그것이 무엇인지 알 때, 우리를 비난하지 마십시오. :) 아, 너무 늦었습니다.
Tim Post

답변:


247

\ (backslash)는 PHP 5.3의 네임 스페이스 구분자입니다.

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

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


1
감사! Google을 사용하여 찾거나 이미 이것을 알고 있습니까 : P?
Alfred

6
영리한 인터넷 검색을 통해 발견했습니다. 아직 PHP 5.3을 사용할 기회가 없었으며 답변에 관심이있었습니다. 잠시 걸렸지 만 찾았습니다.
Alan Geleynse

1
시작 php backslash하여 네임 스페이스 구분 기호로 선택하지 않았다는 기사를 읽은 다음 php namespace문서 를 얻었습니다.
Alan Geleynse

20
인터넷 검색 "기능 전에 PHP 백 슬래시"로 이동했습니다.
igneosaur

4
@igneosaur "나는 프론트 엔드 디바이스 해요 및 PHP는 무서운는"인터넷 검색을 날 여기를 가져왔다
Telarian

23

네임 스페이스

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"

22

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

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

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

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

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


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.