- <?php
- // static 정적변수 설명
- echo "<table width = '120'>\n";
- for($i = 0; $i < 10; $i++){
- // 한 행에 적용될 색 호출
- $tdColor = getTdColor();
- // 한 행의 배경색을 지정하여 출력
- echo "<tr>".
- "<td style='background: $tdColor'> </td>".
- "</tr>\n";
- }
- echo "</table>\n";
- // 테이블 10줄 출력하며, 홀수행은 #999999E, 짝수행은 #CECFCE 입니다.
- //함수 시작
- function getTdColor(){
- // 항상 기억될 변수
- static $tdColorValue = "#CECFCE";
- // 색 지정
- if($tdColorValue == "#CECFCE"){
- // 홀수행 <td>일때
- $tdColorValue = "#999999";
- }
- else{
- // 짝수행 <td>일때
- $tdColorValue = "#CECFCE";
- }
- return($tdColorValue);
- }
- // global 전역변수 설명
- $a = 1;
- $b = 2;
- function Sum(){
- global $a, $b;
- $b = $a + $b;
- }
- Sum();
- echo $b;
- // 3
- ?>
--------------------------------------------------------------------------------------------
18.37. 라인
기본적으로 함수 안에서 사용된 변수는 함수의 실행이 끝나면
그 값이 해제되어 다음번 호출시 새로 초기화 된 값으로 실행됩니다.
어떤 경우에는 함수 안에서 사용된 변수의 값이
유지되어 사용하길 원할때 static 키워드를 사용합니다.
16. 라인
함수안에서 static으로 선언된 변수는 함수의 호출이 끝난 후에도
계속 그 값을 유지하여 다음 호출 시 변경된 값에 대해 함수를 실행합니다.(16줄)
비슷한 키워드로 global이 있으며, 사용 방법까지 같지만 scope이 틀립니다.
static 정적변수는 유효영역의 또 다른 중요한 기능이 static변수입니다.
정적(static) 변수는 로컬 함수 영역에서만 존재합니다.
그러나 프로그램이 그 영역을 떠나지 않으면 그 값을 잃지 않습니다.
global 전역변수는 함수내에서(지역변수)
전역변수 계속적으로 사용하길 바란다면
함수안에서(지역변수) global로 선언해야 합니다.