강의

멘토링

커뮤니티

Inflearn Community Q&A

95doyoung0935's profile image
95doyoung0935

asked

PHP 7+ Programming

14 - Functions (3)

foo2 관련 질문 드립니다.

Written on

·

178

0

foo2 에서 static $count = 0 부분이 함수가 실행 될 때마다 실행 되어서 초기화 될 것 같은데 왜 초기화가 안되는 것 인가욤?

php

Answer 1

0

pronist님의 프로필 이미지
pronist
Instructor

static 키워드를 사용한 선언은 제일 첫 선언에서 정적 영역에 저장됩니다. 일반적인 함수에 선언된 로컬 변수는 스택이라는 영역에 쌓여 함수호출이 끝나면 메모리상에서 소멸하고, 다시 함수를 호출하면 변수에 대한 메모리를 할당하여 초기화합니다. 하지만 정적 영역에 있는 것은 그러한 과정을 거치지 않고 함수 호출이 끝나도 유지됩니다.

코드가 상당히 헷갈려서 두 번 호출하면 $count 가 0 으로 초기화되어 재선언이 일어날 것처럼 보이지만 사실 그렇지 않습니다.

95doyoung0935's profile image
95doyoung0935

asked

Ask a question