define() 함수나 const 키워드를 이용하면 상수를 정의할 수 있습니다. 상수는 변수와 달리 한 번 정의했으면 재정의하거나 미정의할 수 없고 한 번 저장된 값을 항상 유지합니다. 즉 어떠한 계산 등으로 이미 상수를 사용해도 상수의 값은 절대 달라지지 않습니다.
● define() 함수에 따라 상수 정의하기
define() 함수를 사용하여 상수를 정의할 수 있습니다. 상수명은 문자나 언더바( _ )에서 시작되고 임의의 수의 문자, 숫자, 그리고 언더바가 이어집니다. 상수명의 첫번째 글자에는 숫자를 사용할 수 없습니다. 상수값은 스칼라(scalar) 값 또는 null이어야 하지만 변수나 연산 결과, 함수의 반환값이라도 지정할 수 있습니다.
스칼라 값이란, 정수와 부동 소수점 수, 문자열, 논리값 중 하나입니다. 상수명은 기본적으로 영문자의 대문자와 소문자를 구별하지만, 다음과 같이 제 3인수에 true를 지정하면 영문자의 대문자와 소문자를 구분하지 않습니다.
define('상수명', 값, true);
예를 들어 상수명이 'APPLE'인 경우에는 'apple'에서도 지정한 상수값을 호출할 수 있습니다.
● const 키워드에 따라 상수 정의하기
PHP 5.3 이후부터 const 키워드를 새롭게 이용할 수 있게 되었습니다.
const 상수명 = 값;
기본적으로 define() 함수로 정의했을 경우과 같지만, 영문자의 대문자와 소문자를 구별하지 않게 할 수는 없습니다. define() 함수에서는 프로그램이 실행될 때 상수가 정의되지만, const 키워드로 서술한 경우에는 프로그램이 읽힌 시점으로 정의되기때문에 상수값에 변수나 연산 결과, 함수의 반환값 등을 지정하거나 함수나 루프, if문에 쓸 수 없습니다. 만약 이러한 장소에 쓰면 Parse 오류가 발생합니다.
● 상수 사용하기
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>상수를 사용하려면?</title> </head> <body> <div> <?php // 상수를 정의합니다. define('HELLO', 'Hello world!'); echo '상수: HELLO: ' . HELLO . '
'; // 상수 Hello는 정의되지 않아 Notice 에러가 발생합니다. echo '상수: Hello: ' . Hello . '
'; // 상수 정의의 반환 값을 $result에 대입합니다. 세번째 인수에 true를 지정하여 대문자·소문자를 구별하지 않도록 합니다. $result = define('GREETING', '안녕', true); if ($result) { echo '상수: GREETING: ' . GREETING . '
'; echo '상수: Greeting: ' . Greeting . '
'; } else { echo '상수 정의에 실패했습니다.' . '
'; } // PHP5.3 이후에서는 const 키워드를 사용해도 정의할 수 있습니다. const WORLD = 'World'; echo '상수: WORLD: ' . WORLD; ?> </div> </body> </html>
실행 결과
'웹코딩 > PHP' 카테고리의 다른 글
조건으로 처리를 분기하려면? if문 | elseif문 | else문 (0) | 2016.10.07 |
---|---|
미리 정의된 상수를 알고 싶을 때 get_defined_constants()함수, define() 함수 (0) | 2016.10.07 |
루프를 벗어나고 싶을 때 break문 (0) | 2016.10.04 |
&&, ||, !란? 논리 연산자 (0) | 2016.10.01 |
두 개의 값 비교하려면? 비교 연산자 (0) | 2016.09.30 |