변수처리 unset

(PHP 4, PHP 5, PHP 7, PHP 8)

unset — Unset a given variable


설명

unset(mixed $var, mixed ...$var): void

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

PASSED BY REFERENCE인 변수가 함수 내에서 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();
?>
                  
                

위의 예는 다음을 출력합니다.

Before unset: 1, after unset: 23
Before unset: 2, after unset: 23
Before unset: 3, after unset: 23
                

매개변수

var
설정 해제할 변수입니다.
vars
추가 변수.

반환 값

값이 반환되지 않습니다.


Examples

예제 #1 unset() 예제

                  
<?php
// destroy a single variable
unset($foo);

// destroy a single element of an array
unset($bar['quux']);

// destroy more than one variable
unset($foo1, $foo2, $foo3);
?>
                  
                

예제 #2 (unset) 캐스팅 사용

(unset) 캐스팅은 종종 unset() 함수와 혼동됩니다. (unset) 캐스팅은 완전성을 위해 NULL 유형 캐스트로만 제공됩니다. 캐스팅하는 변수를 변경하지 않습니다. (unset) 캐스트는 PHP 7.2.0부터 더 이상 사용되지 않으며 8.0.0부터 제거되었습니다.

                  
<?php
$name = 'Felipe';

var_dump((unset) $name);
var_dump($name);
?>
                  
                

위의 예는 다음을 출력합니다.

NULL
string(6) "Felipe"
                

메모

참고: 이것은 함수가 아니라 언어 구조이기 때문에 변수 함수명명된 인수를 사용하여 호출할 수 없습니다.

참고: 현재 컨텍스트에서 볼 수 있는 개체 속성도 설정 해제할 수 있습니다.

참고: 개체 메서드 내에서 $this를 설정 해제하는 것은 불가능합니다.

참고: 접근할 수 없는 객체 속성에 대해 unset()을 사용할 때 선언된 경우 __unset() 오버로딩 메서드가 호출됩니다.


기타