본문 바로가기

개발/PHP

define(): 상수의 정의

반응형

 

개발을 하다보면 변하지 않는 값이 필요한 경우가 있습니다.

예를 들어 사용자 ID 같은걸 사용해야 하는데, 중간에 값이 변한다면 유저가 바뀔 수도 있겠죠?

혹은 기본 URL을 저장해서 오타를 방지 할 수도 있구요.

 

이때 필요한게 define() 함수입니다.

상수란, 변하지 않는 값을 의미합니다. 반대로 변수는 값을 변경 할 수 있죠.

 

아래와 같이 사용합니다.

<?php
define('PLAYON', 'tistory.com');
?>

PLAYON이란 변수에 tistory.com 이란 변수를 넣었습니다.

 

이걸 사용하려면 아래 처럼 하면 됩니다.

<?php
define('PLAYON', 'tistory.com');
echo PLAYON; // tistory.com 출력됨
?>

define() 으로 정의 된 상수를 사용할 때에는 $ 표시는 필요 없습니다.

$playon = 'tistory.com'; 에서 변수를 출력하려면 echo $playon; 이지만,

바로 echo PLAYON; 해버리면 됩니다.

 

 

상수는 변하지 않는 값이라고 했는데 확인을 해 볼까요?

같은 상수이름으로 덮어 씌워보겠습니다.

<?php
define('PLAYON', 'tistory.com');
define('PLAYON', 'playon.tistory.com');
// Notice: Constant PLAYON already defined in ... on line 2
// tistory.com 출력
?>

같은 이름으로 덮어 썼더니 이미 있다는 표시가 나오고 뒤에 입력한 playon.tistory.com은 무시되었습니다.

Notice 에러는 꺼 두었었는데, 요즘엔 작은 에러도 모두 메세지 나오도록 설정하고 에러 하나씩 잡는 연습을 하고 있네요 🙄

 

 

 

그리고 상수가 설정됐는지 확인 해야 할 경우가 생기는데요. 아래처럼 확인 할 수 있습니다.

<?php
define('PLAYON', 'tistory.com');

if (defined('PLAYON')) {
  echo '아 배고파!';
} else {
  echo '아 배불러!';
}
// 아 배고파! 출력
?>

 

배가 고프니깐 맛난거 드세요~ 😋

 

 

 

반응형