블로그 이미지
veresuke's House!!
verere

calendar

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

Recent Comment

Recent Trackback

  • 33,209total
  • 0today
  • 8yesterday

'define'에 해당되는 글 1건

  1. 2009/03/07 [PHP]배열을 상수로 사용하기
2009/03/07 23:29 Study/Web

정말 간만에 올리는 공부글이 아닌지 ㅋ


코딩을 하다가 배열을 상수로 사용할 필요가 생겼다.

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];

?>


결과를 보면 짐작들 하시겠지만 요렇다~

array('1'  => 'the value is 1', '10' => 'the vaue is 10', '100' => 'the value is 100',  '1000' => 'the value is 1000')

the vaue is 10
the vaue is 1000


이 방법을 사용하면서 좀 신경써야 할 부분은

var_export() 부분이다.

var_export()의 파라미터 중 두 번째 파라미터에 꼭!! true를 해줘야 한다는 것이다.

true를 안 하면 접근이 안 된다는 ㄷㄷㄷ


슬슬 이쯤에서 var_export()와 eval에 대해 살펴보는 시간을 ㅋ


var_export()

변수의 표현을 출력하거나 문자열로 반환하는 함수로 함수의 형태는 요렇다
mixed var_export ( mixed expression [, bool return])

파라미터로 받은 변수에 대해 구조 정보를 반환하는데 언뜻 보면 PHP 디버깅을 할 때 많이 쓰이는 var_dump()와 비슷하기도 하다.
하지만 var_dump()와의 차이점은 반환하는 표현이 유요한 PHP 코드이고 또 다른 점은 PHP5에서 객체의 protected, private 속성을 반환한다는 것이다.
두 번재 파라미터를 살펴보면 bool return으로 되어있다. 말 그래도 반환을 할 것인지 안 할 것인지 결정한다. 디폴트는 false다. 변수 표현을 반환하길 바란다면  true로 셋팅해 주시길 ㅋ

eval()

문자열로된 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
posted by verere