상수
앞에서 변수에 대해서 학습했습니다.
변수를 선언 후 다른 값을 대입한 후에도 다시 다른값을 또 선언할 수 있습니다.
상수는 변수의 반대 개념으로 어떠한 값을 대입한 후에는 다른 값을 대입해도 값이 변하지 않습니다.
즉, 기본적으로 어떠한 값이 변해야할 이유가 있다면 변수를 사용하고 변하지 않아야 한다면 상수를 사용합니다.
상수를 선언하려면 define문을 사용합니다.
상수 선언 방법
define('상수명','값');
상수명은 소문자 대문자 모두 사용할 수 있지만 보통 통상적으로 대문자를 사용합니다.
프로그래머간의 약속이라고 보시면됩니다.
변수와 달리 $는 앞에 사용하지 않습니다.
단어가 단어 사이에는 언더바(_)를 사용합니다.
변수 선언시에 $myCar로 표현했다면 상수는 MY_CAR로 사용합니다.
상수를 출력하려면 상수명만 출력문을 통해서 적습니다.
상수 출력 방법
echo 상수명;
다음은 상수를 선언하고 선언한 상수를 출력하는 예제입니다.
<?php define('MY_CAR','porsche911'); echo MY_CAR; ?>
다음은 결과 이미지
그럼, 정말로 다른 값을 대입해도 정말로 값이 변하지 않는지 테스트 해봅시다.
다음은 상수에 다른 값을 대입하여 결과를 확인하는 예제입니다.
<?php define('MY_CAR','porsche911'); define('MY_CAR','crown'); echo MY_CAR; ?>
다음은 결과 이미지
상수를 처음 선언 후 다시 같은 상수명으로 다른 값을 사용하여 선언했습니다.
하지만 상수는 한번 값을 선언하면 값이 변하지 않으므로 처음 선언한 값이 출력됩니다.
define()의 첫번째 값은 상수명, 두번째는 상수값을 입력했습니다. 세번째 값도 입력할 수 있으며 역할은 대소문자를 구분할지 입니다.
세번째 값에 넣을 수 있는 값은 true, false입니다.
값을 입력하지 않으면 기본적으로 true가 입력됩니다. true는 대소문자를 구분하지 않는다는 의미이고 false는 대소문자를 구분한다는 의미입니다.
그럼 테스트해봅시다.
<?php define('DISNEY','MICKEY', true); echo disney; ?>
위의 코드는 대문자로 상수명 DISNEY를 선언했고 소문자로 disney를 사용하여 출력했으며 정상적으로 값이 출력되었습니다.
다음은 결과 이미지
이번에는 세번째 값으로 false를 입력하여 테스트하겠습니다.
<?php define('DISNEY','MICKEY', false); echo disney; ?>
다음은 결과 이미지입니다. 대소문자를 구분하기 때문에 상수 DISNEY를 인식하지 못합니다.