정적 변수

· 11년 전 · 618

먼저 정적변수의 필요성을 알아보기 위해서 변수의 값을 1씩 증가시키는 간단한 프로그램을 보도록 하겠습니다.


<?
Function Increase() {
  $first = 0;  
  echo("$first ");
  $first++;
}

Increase();
Increase();
Increase();
?>


위의 예제는 먼저 $first 변수의 값을 1씩 증가시키는 Increase() 함수를 정의하고  그 함수를 세 번 호출하는 코드입니다.

그런데, 위의 코드를 실행하면 우리가 기대하는 결과 즉, "0 1 2" 가 아닌 "0 0 0" 이라는 결과를 얻게 될 것입니다.

그 이유는, 위 예제에서 Increase() 함수를 호출하였을 때 그 함수내에서는 $first 변수의 값을 하나 증가시키지만 그 함수가 종료되면 $first 변수에 저장된 값이 사라지기 때문입니다.

바로, 이 때 함수가 종료되어도 함수내에서 사용된 변수의 저장된 값이 사라지지 않게하려면 static 이라는 선언자를 사용해야 합니다. 그리고 이렇게 static 이라는 선언자가 붙은 변수를 정적 변수라고 부릅니다.

그럼, 위의 예제를 정적변수를 사용해서 고치면 다음과 같을 것입니다.


<?
Function Increase() {
  static $first = 0;  
  echo("$first ");
  $first++;
}

Increase();
Increase();
Increase();
?>


그리고 위의 코드를 실행하면 우리가 원하는 결과값을 다음와 같이 얻을 수 있을것입니다.


0 1 2

|
댓글을 작성하시려면 로그인이 필요합니다. 로그인

프로그램

+
제목 글쓴이 날짜 조회
11년 전 조회 1,557
11년 전 조회 619
11년 전 조회 824
11년 전 조회 901
11년 전 조회 921
11년 전 조회 1,121
11년 전 조회 2,655
11년 전 조회 2,309
11년 전 조회 1,847
11년 전 조회 1,430
11년 전 조회 1,377
11년 전 조회 2,354
11년 전 조회 1,611
11년 전 조회 2,814
11년 전 조회 3,628
11년 전 조회 3,748
11년 전 조회 3,811
11년 전 조회 3,928
11년 전 조회 2,393
11년 전 조회 1.7만
11년 전 조회 1,372
11년 전 조회 1,118
11년 전 조회 1,057
11년 전 조회 897
11년 전 조회 1,029
11년 전 조회 848
11년 전 조회 691
11년 전 조회 1,075
11년 전 조회 819
11년 전 조회 734
11년 전 조회 1,060
11년 전 조회 940
11년 전 조회 734
11년 전 조회 884
11년 전 조회 908
11년 전 조회 915
11년 전 조회 1,015
11년 전 조회 648
11년 전 조회 709
11년 전 조회 887
11년 전 조회 737
11년 전 조회 771
11년 전 조회 734
11년 전 조회 656
11년 전 조회 732
11년 전 조회 1,342
11년 전 조회 671
11년 전 조회 980
11년 전 조회 872
11년 전 조회 619
11년 전 조회 647
11년 전 조회 724
11년 전 조회 730
11년 전 조회 1,264
11년 전 조회 4,145
11년 전 조회 1,213
11년 전 조회 943
11년 전 조회 1,419
11년 전 조회 7,548
11년 전 조회 1,138
11년 전 조회 2,348
11년 전 조회 1,163
11년 전 조회 1,212
11년 전 조회 1,494
11년 전 조회 996
11년 전 조회 1,001
11년 전 조회 999
11년 전 조회 1,009
11년 전 조회 1,673
11년 전 조회 1,052
11년 전 조회 1,196
11년 전 조회 986
11년 전 조회 4,652
11년 전 조회 705
11년 전 조회 1,091
11년 전 조회 1,492
11년 전 조회 1,016
11년 전 조회 5,301
11년 전 조회 3,422
11년 전 조회 4,970
11년 전 조회 836
11년 전 조회 1,191
11년 전 조회 1,390
11년 전 조회 1,271
11년 전 조회 1,202
11년 전 조회 698
11년 전 조회 3,356
11년 전 조회 2,896
11년 전 조회 2,241
11년 전 조회 1,465
11년 전 조회 1,475
11년 전 조회 2,887
11년 전 조회 842
11년 전 조회 1,069
11년 전 조회 2,396
11년 전 조회 3,311
11년 전 조회 1,202
11년 전 조회 772
11년 전 조회 1,404
11년 전 조회 705
🐛 버그신고