정말 간만에 올리는 공부글이 아닌지 ㅋ
코딩을 하다가 배열을 상수로 사용할 필요가 생겼다.
constant, define을 이리저리 사용해보다가 생각만큼 안 돼서
인터넷을 뒤적 뒤적~~
그러다가 발견한게 var_export()와 eval()을 이용한 방법이다.
요렇게~~
<?PHP
Define(
'_TESTARRAYCONSTANT',
var_export(
array(
'1' => 'the value is 1',
'10' => 'the vaue is 10',
'100' => 'the value is 100',
'1000' => 'the value is 1000'
),
true
)
);
$testDefine = eval('return ' . _TESTARRAYCONSTANT . ';');
print _TESTARRAYCONSTANT;
print '<BR /><BR />';
print $testDefine[10];
print '<BR />';
print $testDefine[1000];
?>
결과를 보면 짐작들 하시겠지만 요렇다~
the vaue is 10
the vaue is 1000
이 방법을 사용하면서 좀 신경써야 할 부분은
var_export() 부분이다.
var_export()의 파라미터 중 두 번째 파라미터에 꼭!! true를 해줘야 한다는 것이다.
true를 안 하면 접근이 안 된다는 ㄷㄷㄷ
슬슬 이쯤에서 var_export()와 eval에 대해 살펴보는 시간을 ㅋ
변수의 표현을 출력하거나 문자열로 반환하는 함수로 함수의 형태는 요렇다
mixed var_export ( mixed expression [, bool return])
파라미터로 받은 변수에 대해 구조 정보를 반환하는데 언뜻 보면 PHP 디버깅을 할 때 많이 쓰이는 var_dump()와 비슷하기도 하다.
하지만 var_dump()와의 차이점은 반환하는 표현이 유요한 PHP 코드이고 또 다른 점은 PHP5에서 객체의 protected, private 속성을 반환한다는 것이다.
두 번재 파라미터를 살펴보면 bool return으로 되어있다. 말 그래도 반환을 할 것인지 안 할 것인지 결정한다. 디폴트는 false다. 변수 표현을 반환하길 바란다면 true로 셋팅해 주시길 ㅋ
문자열로된 PHP 코드를 실행, 해석, 인식 시켜주는 함구로 함수의 형태는
mixed eval ( string code_str) 이렇다
요 함수는 다로 설명할 만한게....
그냥 짤막한 예를 들어면
$testPlusVar = '\$resultSum = 1 + 2;';
이렇게 있을 때
eval('$testPlusVar');
print $resultSum;
한다면 결과는
3
이렇다;;
오늘도 대충 글이 끝난것(?) 같다.
오늘도 이쯤에서 끝을... ㅋ
'Study > Web' 카테고리의 다른 글
| [PHP]배열을 상수로 사용하기 (0) | 2009/03/07 |
|---|---|
| [JSON]클라이언트에서 JSON 데이터 사용하기 (0) | 2008/11/06 |
| [AJAX]timeout (1) | 2008/11/05 |
| [PHP] 가변변수에 대해서 (2) | 2008/10/24 |