happy cat image

everdevel

Web Technology, 에버디벨

UI 변경

EEOS

에버디벨 책을 학습할 수 있는 클라우드 개발 환경을 제공합니다.
개발환경구축없이 태블릿에서도 개발할 수 있는 책의 예제와 프로젝트
오직 당신을 위한 스토리지, URL, DB, 무제한 트래픽
그리고 웹기반 개발환경을 제공합니다.

더 알아보기
에버디벨이 만든 클라우드 개발환경을 소개합니다.

로컬 변수의 생명주기를 유지하기

함수가 작동을 끝내면 함수내의 로컬변수는 자동적으로 메모리상에서 사라집니다.
이를 자동적으로 사라지지 않게끔 할 수 있습니다.
함수내에서 static 키워드를 사용합니다.

static 키워드 사용하기

static 로컬 변수명

자 우선 static을 사용하지 않고 볼까요?

<?php
    function func(){
        $disney = 0;
        $disney++;
        return $disney;
    }

    echo func();
    echo '<br>';
    echo func();
?>

위의 코드에서 로컬 변수 disney를 선언했고 증감연산자 ++를 사용했습니다. 그럼 한번 호출 된 후에는 ++에 의해 1이 됩니다.
당연히 함수가 종료 후 disney 변수는 소멸되므로 어떠한 값은 커녕 존재조차 하지 않게 됩니다. 2번 호출 했으나 두번 다 1을 출력하면 정상입니다.

다음은 결과입니다.

그럼 함수의 생명주기가 끝났음에도 static 키워드를 사용한 로컬 변수가 사라지지 않았는지 확인해 볼게요. 위와 동일한 코드에 변수 앞에 static을 사용할 거에요. 그럼 결과는 처음에는 1 그 다음 값은 ++ 에 의해 2가 출력되어야 합니다.
왜냐면 함수가 종료했음에도 메모리상에 남아서 있기 때문이죠.

<?php
    function func(){
        static $disney = 0;
        $disney++;
        return $disney;
    }

    echo func();
    echo '<br>';
    echo func();
?>

위 코드의 결과

php image

첫번째 예제와 달리 함수안에서 static 키워드를 사용했기 때문에 해당 변수가 메모리상에 사라지지 않고 유지되어서 해당 갖고 있던 값 1에서 ++하여 2가 되어 두번째 호출했을 때 2가 출력됩니다.

이렇게 static 키워드에 대해서 알아보았습니다.

2019년 에버디벨이 제안하는 클라우드 개발환경(EEOS)이 드디어 오픈했습니다.
이제 개발환경구축없이 웹브라우저에서 웹개발하자
HTML5, CSS3, JavaScript를 넘어 MySQL, PHP까지
앞으로 지원 언어는 더 늘어날 예정 react, node, angular등
웹브라우저만 있다면 기기도 가리지 않아요. 이제 아이패드에서도 웹개발해요.!!
자기만의 클라우드 에디터, 저장공간, 데이터베이스, 접속 URL(eeosXXX.adjkl.com/eeos/)을 제공해요.
현재 웹코딩 시작하기와 PHP200 독자는 mybook(책과 관련된 기능 제공)에서 사용할 수 있습니다.

EEOS 신청하기 EEOS 알아보기

강좌로 돌아가기