PHP 매뉴얼
이전 |  | 다음

# unset

(PHP 3, PHP 4, PHP 5 )

unset -- 주어진 변수를 제거합니다.

## 설명

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

unset()은 주어진 변수를 파괴합니다. PHP 3에서, unset()은 항상 `TRUE`를 반환했습니다. (정확히는, 정수값 1) 그러나 PHP 4에서, unset()은 true 함수가 아닙니다: 이제 구문입니다. 아무 값도 반환하지 않고, unset()의 결과를 가져오려고 하면 parse 에러가 생성됩니다.

예 1. unset() 예제

`<?php // 하나의 변수를 파괴 unset($foo); // 배열의 한 요소를 파괴 unset($bar['quux']); // 하나 이상의 변수를 파괴 unset($foo1, $foo2, $foo3); ?>`

함수 안에서 unset()의 행동은 어떠한 변수형을 파괴하려 했는지에 따라 달라집니다.

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

`<?php function destroy_foo() { global $foo; unset($foo); } $foo = 'bar'; destroy_foo(); echo $foo; ?>`

위 예제의 출력:

    bar

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

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

위 예제의 출력:

    something
    something

함수 안에서 정적 변수를 unset()하면, unset()은 변수와 모든 참조를 파괴합니다.

`<?php function foo() { static $a; $a++; echo "$a\n"; unset($a); } foo(); foo(); foo(); ?>`

위 예제의 출력:

    1
    2
    3

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

`<?php function foo() { unset($GLOBALS['bar']); } $bar = "something"; foo(); ?>`

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

참고: isset(), empty(), array_splice().

이전 | 처음으로 | 다음
unserialize | 위로 | var_dump