Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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
Archives
Today
Total
05-09 14:05
관리 메뉴

zyint's blog

unset — 주어진 변수를 제거 본문

예전글들

unset — 주어진 변수를 제거

진트­ 2009. 2. 17. 02:40

unset

(PHP 4, PHP 5)

unset주어진 변수를 제거

함수가 아닌 언어의 구조이다.

 

설명

  1. void unset ( mixed $var [, mixed $var [, mixed $... ]] )

unset()은 주어진 변수를 파괴합니다.

함수 안에서 unset()의 행동은 어떠한 변수를 제거하려 하는지에 따라 달라집니다.

함수 안에서 전역 변수를 unset()하면, 로컬 변수만 파괴됩니다. 호출한 환경에서 변수는 unset()을 호출하기 전과 같은 값을 유지합니다.

 

: mixed $var

제거할 변수

 

반환값

없음

 

예제

예제

  1. <?php

    // 하나의 변수 파괴

    unset($foo);

  2.  

    // 배열의 한 원소 파괴

    unset($bar['quux']);

  3.  

    // 하나 이상의 변수 파괴


    unset($foo1$foo2$foo3);

    ?>

 

예제: (unset) 캐스팅 사용

  1. <?php

    $name 'Felipe';

    var_dump((unset) $name);

    ?>

결과:

null

 

예제: 함수 내부에서 global 변수를 unset하는 경우 해당 global 변수만 해제된다.

  1. <?php


    function destroy_foo()
    {
        global 
    $foo;
        unset(
    $foo);
    }

     

    $foo 'bar';

    destroy_foo();
    echo 
    $foo;

    ?>

위 예제의 출력:

bar

 

예제:전역 변수를 함수 안에서 unset()하려면, $GLOBALS 배열을 사용할 수 있습니다:

  1. <?php

  2. function foo()
    {
        unset(
    $GLOBALS['bar']);
    }


  3. $bar "something";
  4. foo();

  5. ?>

 

예제: 함수 안에서 *참조로 넘겨진* 변수를 unset()하면, 로컬 변수만이 파괴됩니다. 호출한 함수에서 변수는 unset()을 호출하기 전과 동일한 값을 유지합니다.

  1. <?php
    function foo(&$bar)
    {
        unset($bar);$bar = "blah";
    }
    $bar = 'something';
    echo "$bar\n";

    foo($bar);
    echo "$bar\n";
    ?>

위 예제의 출력:

something
something

 

 

예제:함수 안에서 정적 변수를 unset()하면, unset()은 함수의 나머지 문맥에서만 변수를 제거합니다. 이어지는 호출은 변수의 이전 값을 복구합니다.

  1. <?php

    function foo() {
        static 
    $bar;


    $bar++;
        echo 
    "Before unset: $bar, ";
        unset(
    $bar);


    $bar 23;
        echo 
    "after unset: $bar\n";
    }

    foo();

    foo();

    foo();

    ?>

     

위 예제의 출력:

Befor unset: 1, after unset: 23
Befor unset: 2, after unset: 23
Befor unset: 3, after unset: 23

 

주의

Note: 이것은 함수가 아닌 언어 구조이기 때문에, 가변 함수 방식으로 호출할 수 없습니다.

Note: 현 문맥에서 보이는 객체 프로퍼티도 제거할 수 있습니다.

Note: PHP 5부터 객체 메쏘드 안에서 $this를 제거할 수 없습니다.

 

참고

  • isset() - 설정된 변수인지 확인
  • empty() - 변수가 비어있는지 검사합니다
  • array_splice() - 배열의 일부를 삭제하고, 그 위치를 다른 내용으로 대체

 

 

참고자료

http://www.php.net/manual/kr/function.unset.php

 

이 글은 스프링노트에서 작성되었습니다.

Comments