티스토리 뷰
[global 변수와 static 변수의 차이]
<?PHP
function inc()
{
global $i;
print $i."<br>";
$i = $i + 1;
}
$i = 0;
for( $j = 0 ; $j < 10 ; $j++){
inc();
}
?>
윗 부분은 global 변수의 한 부분이다. global변수를 지정함으로써 함수 내에서만
사용 할 수 있는 변수를 모든 곳에서 사용 가능하게 해준다.
그럼 static변수를 보자.. static 변수 같은 경우에는 공부 해보신 분을 알겠지만,
메모리에 한 부분을 떡 하니 차지한다. 어떻게 보면 결과는 global과 똑같지만,
엄연히 개념이 다른 것이다.
<?PHP
function inc()
{
$i = 0;
static $j = 0;
print "$i $j"."<br>";
$i = $i + 1;
$j = $j + 1;
}
$i = 0;
$j = 0;
for( $j = 0 ; $j < 10 ; $j++){
inc();
}
?>
위 소스를 보게 되면 결과가
0 0
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
이렇게 나오는데.. 이것은 변수 i는 항상 0으로 초기화가 되지만
변수 j같은 경우 static으로 메모리 한부분의 0으로써 자리를 잡고 있는 상태에서
추가가 되므로 값이 계속 증가한다.
즉, static은 전처리 단계로써 컴파일시 이미 메모리에 저장이 되고
global이나 다른 변수들은 실행시 메모리에 저장된다고 생각하면 조금 이해가
더 잘 될 듯 하다.
- Total
- Today
- Yesterday
- 안드로이드
- 자바
- LocationManager
- 실수형
- 다 수
- 일본
- php
- 일본어
- 소스
- 뷰 크기 조절
- error
- 일본어 공부
- Ruby on Rails
- Android
- visualforce
- MapActivity
- 예제
- 자리 지정
- Rails
- 공부
- menifast.xml
- 아이디 텍스트 박스 보안
- Multi MapActivity
- 홈페이지 작성
- 단어
- Salesforce
- searchManager
- php공부
- java
- 세일즈포스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |