2010-07-29 4 views
0

내가 PHP에서이 상수가 상상 상수 (정의)를 사용하지 시간 또는 PHP는 코드를 한 번 실행하고 그 결과를 APP_PATH에 저장합니까? 나는 충분히 명확하다는 것을 희망한다 :어떻게 PHP는

이 질문은 PHP 5.1.0+에 적용된다.

답변

7

정의 된 시점에 한 번 수행해야합니다. 문서 내용

UPDATED : define() - 문서에서 constants

:

상수는 단순 값에 대한 식별자 (이름)이다. 이름에서 알 수 있듯이 스크립트의 실행 중에는 그 값을 변경할 수 없습니다 (실제로는 상수가 아닌 마법 상수 제외). 상수는 기본적으로 대/소문자를 구분합니다. 규약에 따라 상수 식별자는 항상 대문자입니다.

더 많은 상수 정보가 필요하면 설명서를 읽으십시오. 여기서는 꽤 잘 설명되어 있으며 사용 예제가있을 것입니다.

+3

그렇지 않으면 상수 값이 파일에서 파일로 변경됩니다. – Mchl

+0

어디서 문서화되어 있습니까? – AlexV

+1

장소는 충분합니다. 상수를 문서화 한 PHP Manual 링크에 대한 업데이트 된 정보를 참조하십시오. 멕 (Mchl)이 언급 한 것에 관해서, 그것은 반드시 사실 일 필요는 없습니다. 일단 상수가 정의되면 자연에 의해 다시 정의되어서는 안되며, 그렇게하면 상수 오류가 발생합니다. (위 인용 인용을보십시오) 그러나 상수는 ... 잘 일정해야합니다. –

1

한 번 실행하고 결과를 APP_PATH에 저장합니다. 이 시점부터 APP_PATH은 스칼라 값입니다. 그것은 계산/함수 또는 다른 것에 대한 핸들과는 다릅니다.

1

Tt는 define의 순간에 단일 요청으로 결과 으로 저장됩니다. 그러므로 '상수'. 다음 요청/스크립트 호출은 코드를 다시 실행하므로 요청간에 일관성이 없을 수 있습니다. 당신이 아니라 함수보다 변수를 원하는 경우

2

는이 익명의 함수를 만들 수는 $ [변수없이] APP_PATH 또는 $ APP_PATH (함께 부를 수

$APP_PATH=function(){ return str_replace('//', '/', str_replace('\\', '/', dirname(__FILE__) . '/') } 

또는

$APP_PATH=function($file){ return str_replace('//', '/', str_replace('\\', '/', dirname($file) . '/') } 

FILE) 은 원하는 작업에 따라 달라집니다.