[php] PHP에서 __DIR__과 dirname (__ FILE__) 사이에 차이점이 있습니까?

저도 똑같아 보이지만 잘 모르겠습니다.

을 사용하는 많은 프로젝트가 있기 때문 dirname(__FILE__)입니다.



답변

결과는 정확히 동일합니다 . 그래서 차이가 없습니다.

예를 들어 다음 두 줄은 다음과 같습니다.

var_dump(dirname(__FILE__));
var_dump(__DIR__);

둘 다 동일한 출력을 제공합니다.

string '/home/squale/developpement/tests/temp' (length=37)

그러나 최소한 두 가지 차이점이 있습니다.

  • __DIR__PHP> = 5.3 에서만 존재합니다.
    • 이것이 dirname(__FILE__)더 널리 사용되는 이유 입니다
  • __DIR__컴파일 타임에 평가되는 반면 dirname(__FILE__), 함수 호출 을 의미하며 실행 타임에 평가됩니다.
    • 그래서, __DIR__(또는이어야한다) 빨리.

참고로 매뉴얼 (인용)매직 상수 섹션을 참조하십시오 .

__DIR__: 파일의 디렉토리입니다.

포함 내에서 사용하면 포함 된 파일의 디렉터리가 반환됩니다.
이것은
dirname(__FILE__).
이 디렉토리 이름은 루트 디렉토리가 아닌 한 후행 슬래시가 없습니다.
(PHP 5.3.0에 추가되었습니다.)


답변