2010-12-13 5 views

답변

5

당신이 define("YEAR",365); 상수를 정의 년은 항상 더 m 무엇을 365 수 없습니다 있도록 실행 시간 동안 그것을 변경할 수없는 경우

. 반면에 변수는 스크립트 실행 중에 값을 변경할 수 있으며 로컬 범위가 있으므로 선언 된 함수 파일에서 변수를 사용할 수 있습니다. 상수는 스크립트 전체에서 액세스 할 수있는 전역 범위가 있습니다.

http://php.net/manual/en/language.constants.php

http://planetozh.com/blog/2006/06/php-variables-vs-constants/

+0

자바의 상수와 같아요. 나는 그것을 사용하지 않아도되어서, 그것이 무엇인지 알지 못했습니다. 감사. – JDelage

2

상수는 프로그램 실행 중에 변경되지 않는 값에 사용하기위한 것입니다. 그들은 메모리에 저장되지 않습니다.

나중에 파일의 맨 위에있는 상수로 변경 될 수있는 정적 매개 변수를 넣어 두는 것이 좋습니다. 필요한 경우 모든 항목을 찾고 대체하는 대신 찾을 수 있고 쉽게 변경할 수 있습니다.

또 하나 : 상수는 항상 CAPITAL_LETTERS 여야하므로 상수임을 알 수 있습니다.

2

결코 변경되지 않는 전역 액세스 가능 값을 원할 때 상수를 정의합니다. 예를 들어 웹 사이트 편집기에 대한 상수를 정의 할 수 있습니다. 이는 많은 페이지에 나타나야하며 회사에서 다른 웹 사이트 편집기를 사용하는 경우 변경해야하는 심각한 PITA입니다.

그래서,

define('WEBEDITOR','Tom Jones'); 

다음 출력 '톰 존스', 바로 에코 웹 에디터 필요 whereever.

변수는 바로 그 변수입니다. 그것은 바뀐다.

+0

상수는 항상 전역 범위가 있습니까? – JDelage

+1

@JDelage : PHP에서는 그렇습니다. 클래스 상수가 아니면 예외입니다. PHP를 배우는 것처럼 보이기 때문에 온라인 설명서가 매우 포괄적임을 알아야합니다. 상수는 http : //ca2.php에서 확인하십시오.net/const – dnagirl

0

상수에는 변경할 수없는 값이 있습니다.

명명 된 상수는 일반적으로 컴파일 조건문의 경우를 제외하고 (대부분의 언어에 나쁜 ​​관행으로 간주됩니다 - PHP를 사용하지 않고, 해석하고 - 또는이 보장되는 경우가 중앙에서 같은 위치 config 파일에서) 그래서 그것들을 과용하지 않는 것이 가장 좋으며 가능한 경우 class constants을 사용하십시오.

이 이유는 상수가 정의 된 곳을 판별하기가 더 어려워지고 이름 충돌을 피하기가 더 어려워지기 때문입니다.

+3

그러나 구성 값에 상수를 사용하는 것은 허용됩니다. 한 지점에서 모든 것을 정의하는 한. 이것은 다른 서버에있을 수있는 대형 응용 프로그램에 필수적이며 서버가 무엇인지에 따라 달라지는 서버 특정 값의 호스트를 찾는 방법을 필요로합니다. 뭐든지간에, 당신은 그들을 오용 할 수 있습니다. 그러나 올바르게 사용하면 시간을 절약 할 수 있습니다. – DampeS8N

+0

@ DampeS8N : 사실입니다. 나는 보통 나쁜 습관이라고 말하기 위해 편집 할 것이다. 나는 이것이 일반적인 개념이라고 생각한다. – webbiedave

+0

그들은 전역이므로 나쁜 관행으로 간주됩니까? – JDelage

관련 문제