복붙노트

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

PHP

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

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. ==============================

    1.\ (백 슬래시)는 PHP 5.3의 네임 스페이스 구분 기호입니다.

    \ (백 슬래시)는 PHP 5.3의 네임 스페이스 구분 기호입니다.

    함수의 시작 앞에 \는 전역 이름 공간을 나타냅니다.

    거기에 넣으면 현재 네임 스페이스에 같은 이름의 함수가 있더라도 호출 된 함수가 전역 네임 스페이스에서 나온 것입니다.

  2. ==============================

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

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

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

    다음에서 Animal, Dog, Shepherd는 클래스 일 필요는 없지만 단순히 네임 스페이스입니다. 명명 충돌을 피하기 위해 이름을 그룹화하는 데 사용 된 의미입니다.

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

    leading \는 Animal이 전역 범위에서 선언되었음을 의미합니다.

  3. ==============================

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

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

  4. ==============================

    4.네임 스페이스

    네임 스페이스

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

    에 대한 공식 문서보기 네임 스페이스.

    Opcache

    또한 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"
    
  5. from https://stackoverflow.com/questions/4790020/what-does-a-backslash-do-in-php-5-3 by cc-by-sa and MIT license