PHP 역시 상수(constant)를 사용하여 데이터를 저장할 수 있습니다. 상수는 반드시 필요하고 자주 사용되는 데이터 저장 방식으로 변수처럼 사용되나 쓰임이 다릅니다. 그럼 아래에서 상수가 무엇인지 좀 더 알아보도록 하겠습니다.


! 상수(constant)란 무엇인가?
상수 역시 하나의 데이터 타입입니다. 가장 많이 사용되는 변수와는 조금 다른데 한번 설정하면 절대 변하지 않는 값을 의미합니다. 그렇기 때문에 변수의 경우 일반적인 모든 값들에 대하여 저장하고 불러오기 위하여 사용하지만 상수는 절대 변하지 않는 데이터이거나 변해서는 안되는 경우에 사용됩니다. 간단하게 예를 들자면 국가코드나 고유이름 또는 정보등에 사용할 수도 있고 사용자가 의도적으로 결정한 값들에 사용됩니다.

@ 상수가 사용되는 데이터 값
- url 주소
- 국가코드
- 계정 및 인증 정보

위와 같이 변하지 않는 값은 주로 상수를 사용합니다.

* 참고
URL 정보를 상수로 지정하여 사용하는 경우가 많습니다. 특히 자주 사용되는 URL, REST-ful API의 경우 역시 상수로 지정하여 사용할 수 있습니다. 상수로 지정할 경우 잘못된 조작의 오류를 막을 수 있고 값이 변경되는 경우 유지보수에 용이하기 때문입니다. 


! PHP에서 상수의 사용방법상수를 사용하기 위해서는 define() 함수를 사용합니다. 상수와 변수의 차이점중 하나는 변수는 $기호를 앞에 사용해야하는 반면 상수의 경우 문자 그대로 사용하면 됩니다. 아래는 상수함수인 define()의 사용방법입니다.

define('상수이름', '설정할 값');


예를 들어 상수명 test에 1234라는 변하지 않는 값을 입력한다면...
<?php
  define('test', '1234');
?>

위 예제는 test라는 이름의 상수를 선언했습니다. 선언할 때 주의할 점은 $표시가 없다는 점입니다. $test가 아닌 test로 선언하여야 합니다.

@ 상수 불러와 표시하는 방법
설정된 상수는 동일하게 불러와 사용할 수 있습니다. 만약 test라고 저장된 상수를 출력하려면 아래와 같습니다.
<?php
  echo test
?>

$가 없을 뿐 동일합니다.



# const  키워드를 사용하는 방법
php 5.3 이전 까지는 define()을 사용한 방법만 가능했으나 5.3 이후부터는 좀 더 쉽게 키워드 const를 사용한 방법이 가능하게 되었습니다! 아무래도 가독성이 좋고 선언도 훨씬 쉬워졌습니다. 방법은 아래와 같죠.
<?php
  const test = '1234';
?>

추가적으로 상수에 변수를 입력하면 어떻게 될까요? 예를들어 변수 $count가 존재하고 이 값이 10일때 이를 상수에 선언하는 경우입니다. 실제로 테스트를 해보면 문법 에러가 발생합니다. 즉 상수의 값으로 변수는 사용할 수 없습니다. 아무리 변수가 변하지 않는다해도 말이죠!

그리고 상수를 다른 페이지에서 사용할 경우 require_once()함수를 사용할 수 있습니다. require_once() 함수는 다른 페이지가 가진 데이터를 불러올 수 있습니다.