(PHP 4, PHP 5)
unset — 주어진 변수를 제거
unset()은 주어진 변수를 파괴합니다.
함수 안에서 unset()의 행동은 어떠한 변수를 제거하려 하는지에 따라 달라집니다.
함수 안에서 전역 변수를 unset()하면, 로컬 변수만 파괴됩니다. 호출한 환경에서 변수는 unset()을 호출하기 전과 같은 값을 유지합니다.
<?php
function destroy_foo()
{
global $foo;
unset($foo);
}
$foo = 'bar';
destroy_foo();
echo $foo;
?>
위 예제의 출력:
bar
전역 변수를 함수 안에서 unset()하려면, $GLOBALS 배열을 사용할 수 있습니다:
<?php
function foo()
{
unset($GLOBALS['bar']);
}
$bar = "something";
foo();
?>
함수 안에서 *참조로 넘겨진* 변수를 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 $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
제거할 변수
다른 변수 ..
값을 반환하지 않습니다.
버전 | 설명 |
---|---|
4.0.0 | unset()은 표현이 되었습니다. (PHP 3에서, unset()은 항상 1을 반환했습니다) |
Example #1 unset() 예제
<?php
// 하나의 변수 파괴
unset($foo);
// 배열의 한 원소 파괴
unset($bar['quux']);
// 하나 이상의 변수 파괴
unset($foo1, $foo2, $foo3);
?>
Example #2 (unset) 캐스팅 사용하기
<?php
$name = 'Felipe';
var_dump((unset) $name);
?>
Note: 이것은 함수가 아닌 언어 구조이기 때문에, 가변 함수 방식으로 호출할 수 없습니다.
Note: 현 문맥에서 보이는 객체 프로퍼티도 제거할 수 있습니다.
Note: PHP 5부터 객체 메쏘드 안에서 $this를 제거할 수 없습니다.