1. <?php
  2.   // static 정적변수 설명
  3.   echo "<table width = '120'>\n";
  4.   for($i = 0; $i < 10; $i++){
  5.     // 한 행에 적용될 색 호출
  6.     $tdColor = getTdColor();
  7.     // 한 행의 배경색을 지정하여 출력
  8.     echo "<tr>".
  9.          "<td style='background: $tdColor'>&nbsp;</td>".
  10.          "</tr>\n";
  11.   }
  12.   echo "</table>\n";
  13.   // 테이블 10줄 출력하며, 홀수행은 #999999E, 짝수행은 #CECFCE 입니다.
  14.   
  15.   //함수 시작
  16.   function getTdColor(){
  17.     // 항상 기억될 변수
  18.     static $tdColorValue = "#CECFCE";
  19.     
  20.     // 색 지정
  21.     if($tdColorValue == "#CECFCE"){
  22.       // 홀수행 <td>일때
  23.       $tdColorValue = "#999999";
  24.     }
  25.     else{
  26.       // 짝수행 <td>일때
  27.       $tdColorValue = "#CECFCE";
  28.     }
  29.     return($tdColorValue);
  30.   }
  31.   
  32.   // global 전역변수 설명
  33.   $a = 1;
  34.   $b = 2;

  35.   function Sum(){
  36.     global $a, $b;
  37.     $b = $a + $b;
  38.   } 
  39.   Sum();
  40.   echo $b;
  41.   // 3
  42. ?>

--------------------------------------------------------------------------------------------


static 정적변수, global 전역변수


18.37. 라인

기본적으로 함수 안에서 사용된 변수는 함수의 실행이 끝나면

그 값이 해제되어 다음번 호출시 새로 초기화 된 값으로 실행됩니다.


어떤 경우에는 함수 안에서 사용된 변수의 값이 

유지되어 사용하길 원할때 static 키워드를 사용합니다.


16. 라인

함수안에서 static으로 선언된 변수는 함수의 호출이 끝난 후에도

계속 그 값을 유지하여 다음 호출 시 변경된 값에 대해 함수를 실행합니다.(16줄)


비슷한 키워드로 global이 있으며, 사용 방법까지 같지만 scope이 틀립니다.


static 정적변수는 유효영역의 또 다른 중요한 기능이 static변수입니다. 

정적(static) 변수는 로컬 함수 영역에서만 존재합니다. 

그러나 프로그램이 그 영역을 떠나지 않으면 그 값을 잃지 않습니다.


global 전역변수 함수내에서(지역변수) 

전역변수 계속적으로 사용하길 바란다면 

함수안에서(지역변수) global로 선언해야 합니다.

'php5 > 기본단계2문법' 카테고리의 다른 글

$_SERVER기능[접속자와 접속 페이지 관련 정보 반환] - $HTTP_SERVER_VARS [deprecated]  (0) 2014.01.15
HTTP란?  (0) 2014.01.15
정규표현식  (0) 2014.01.12
재귀 함수  (0) 2014.01.08
가변 함수  (0) 2014.01.08
:
BLOG main image

공지사항

카테고리

분류 (356)
main (1)
php5 (218)
HTML (36)
javascript (93)
IT 이론과 퍼온정보 (8)
깨작일상 (0)
곧 추가할 내용 (0)
추후 알아볼것들... (0)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2024/04   »
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 30
Total :
Today : Yesterday :