Programing

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

crosscheck 2020. 7. 29. 07:45
반응형

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에서 추가됨)

참고 : https://stackoverflow.com/questions/2749416/is-there-any-difference-between-dir-and-dirname-file-in-php

반응형