Forum und email

unset

(PHP 4, PHP 5)

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

설명

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

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

Example#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();
?>

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

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