unset
(PHP 4, PHP 5)
unset — 주어진 변수를 제거합니다.
설명
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().