update : 2015.11.03
php.shukuma.com

검색:
 
 
주어진 변수를 제거

unset

(PHP 4, PHP 5, PHP 7)

unset주어진 변수를 제거

설명

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

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

인수

var

제거할 변수

var

다른 변수 ..

...

반환값

값을 반환하지 않습니다.

변경점

버전 설명
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를 제거할 수 없습니다.

참고

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