PHP 버전
4+
/* 하나의 변수 설정을 해제 */
$a = 10;         // 변수 설정
var_dump($a);    // int(10)

unset($a);       // 변수 해제
var_dump($a);    // Warning: Undefined variable $a

/* 여러 개의 변수 설정을 해제 */
$x = 1;
$y = 2;
$z = 3;

unset($x, $y);   // $x와 $y 해제
var_dump($x);    // Warning: Undefined variable $x
var_dump($y);    // Warning: Undefined variable $y
var_dump($z);    // int(3) - $z는 그대로 존재
unset(mixed $var, mixed ...$vars): void
<?php
$data = 'Hello, World!';
echo $data; // 출력: Hello, World!

unset($data);

// 다음 줄은 오류를 발생시킵니다.
echo $data; // Warning: Undefined variable $data
class User {
    public $name;
    public $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

$user = new User('John Doe', 30);
print_r($user);
// 출력: User Object ( [name] => John Doe [age] => 30 )

unset($user->age); // age 속성 제거

print_r($user);
// 출력: User Object ( [name] => John Doe )
$array = [0, 1, 2, 3];

unset($array[1]); // 인덱스 1 삭제

print_r($array);
/*
결과:
Array
(
    [0] => 0
    [2] => 2
    [3] => 3
)
*/
$a = 50;
$b = &$a;   // $b가 $a를 참조

unset($b);  // $b만 해제

var_dump(isset($a)); // bool(true) - $a는 여전히 존재
var_dump(isset($b)); // bool(false) - $b는 해제됨

$a = 100;
echo $a; // 100
$a = 10;

function test() {
    unset($a); // 함수 내부의 로컬 $a만 영향
    var_dump(isset($GLOBALS['a'])); // bool(true)
    
    unset($GLOBALS['a']); // 전역 변수 삭제
}

test();
var_dump(isset($a)); // bool(false)
function counter() {
    static $count = 0;
    $count++;
    var_dump($count);
    
    unset($count); // 정적 변수의 값을 완전히 제거하지 못함
}

counter(); // int(1)
counter(); // int(2) - $count는 여전히 존재