[php] const와 define()

2014. 3. 9. 17:24 from Dev/php

php 5.3 이후로 상수를 정의하는 방법에는 두 가지가 있다. 5.3 이전에는 const는 글로벌로 이용할 수 없었다.

const를 이용하는  방법과 define을 이용하는 방법이 있으며, 다음과 같이 정의 내린다. 


const FOO = 'BAR';
define('FOO', 'BAR);

가장 근본적인 차이점은 const는 컴파일 타임에서, define은 런타임에서 정의가 내려진다는 점이다. 

따라서 const는 조건문에서 이용할 수가 없다. 즉, 미리 정의가 내려지지 않는 상수는 define을 이용해서 


if (!defined('FOO')) {
   define('FOO', 'BAR');
}

같은 방법이 가능하다. 

또한 당연히 const는 scalar값만 받을 수 있다. 


상수를 정의하는 이유에 충실하자면 const가 조금더 정확하고 퍼포먼스에서도 낫다고 본다. const를 이용하는 것이 상수가 많은 경우에는 두배 이상 코드를 더 빨리 해준다고도 한다. 

Posted by banasun :