unset

(PHP 4, PHP 5, PHP 7)

unset锟酵放革拷锟斤拷锟侥憋拷锟斤拷

说锟斤拷

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

unset() 锟斤拷锟斤拷指锟斤拷锟侥憋拷锟斤拷锟斤拷

unset() 锟节猴拷锟斤拷锟叫碉拷锟斤拷为锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷要锟斤拷锟劫的憋拷锟斤拷锟斤拷锟斤拷锟酵讹拷锟斤拷锟斤拷锟斤拷同锟斤拷

锟斤拷锟斤拷诤锟斤拷锟斤拷锟� unset() 一锟斤拷全锟街憋拷锟斤拷锟斤拷锟斤拷只锟角局诧拷锟斤拷锟斤拷锟斤拷锟斤拷锟劫o拷锟斤拷锟节碉拷锟矫伙拷锟斤拷锟叫的憋拷锟斤拷锟斤拷锟斤拷锟街碉拷锟斤拷 unset() 之前一锟斤拷锟斤拷值锟斤拷

<?php
function destroy_foo() {
    global 
$foo;
    unset(
$foo);
}

$foo 'bar';
destroy_foo();
echo 
$foo;
?>

锟斤拷锟斤拷锟斤拷锟教伙拷锟斤拷锟斤拷锟�

bar

锟斤拷锟斤拷锟斤拷锟斤拷诤锟斤拷锟斤拷锟� unset() 一锟斤拷全锟街憋拷锟斤拷锟斤拷锟斤拷使锟斤拷 $GLOBALS 锟斤拷锟斤拷锟斤拷实锟街o拷

<?php
function foo() 
{
    unset(
$GLOBALS['bar']);
}

$bar "something";
foo();
?>

锟斤拷锟斤拷诤锟斤拷锟斤拷锟� unset() 一锟斤拷通锟斤拷锟斤拷锟矫达拷锟捷的憋拷锟斤拷锟斤拷锟斤拷只锟角局诧拷锟斤拷锟斤拷锟斤拷锟斤拷锟劫o拷锟斤拷锟节碉拷锟矫伙拷锟斤拷锟叫的憋拷锟斤拷锟斤拷锟斤拷锟街碉拷锟斤拷 unset() 之前一锟斤拷锟斤拷值锟斤拷

<?php
function foo(&$bar) {
    unset(
$bar);
    
$bar "blah";
}

$bar 'something';
echo 
"$bar\n";

foo($bar);
echo 
"$bar\n";
?>

锟斤拷锟斤拷锟斤拷锟教伙拷锟斤拷锟斤拷锟�

something
something

锟斤拷锟斤拷诤锟斤拷锟斤拷锟� unset() 一锟斤拷锟斤拷态锟斤拷锟斤拷锟斤拷锟斤拷么锟节猴拷锟斤拷锟节诧拷锟剿撅拷态锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟劫★拷锟斤拷锟角o拷锟斤拷锟劫次碉拷锟矫此猴拷锟斤拷时锟斤拷锟剿撅拷态锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷原为锟较次憋拷锟斤拷锟斤拷之前锟斤拷值锟斤拷

<?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

要锟斤拷锟劫的憋拷锟斤拷锟斤拷

...

锟斤拷锟斤拷锟斤拷锟斤拷......

锟斤拷锟斤拷值

没锟叫凤拷锟斤拷值锟斤拷

锟斤拷锟斤拷

Example #1 unset() 示锟斤拷

<?php
// 锟斤拷锟劫碉拷锟斤拷锟斤拷锟斤拷
unset ($foo);

// 锟斤拷锟劫碉拷锟斤拷锟斤拷锟斤拷元锟斤拷
unset ($bar['quux']);

// 锟斤拷锟斤拷一锟斤拷锟斤拷锟较的憋拷锟斤拷
unset($foo1$foo2$foo3);
?>

Example #2 使锟斤拷 (unset) 锟斤拷锟斤拷强锟斤拷转锟斤拷

(unset) 锟斤拷锟斤拷强锟斤拷转锟斤拷锟斤拷锟斤拷锟酵猴拷锟斤拷 unset() 锟斤拷锟斤拷锟斤拷锟斤拷 为锟斤拷锟斤拷锟斤拷锟皆o拷(unset) 锟斤拷锟斤拷为一锟斤拷 NULL 锟斤拷锟酵碉拷强锟斤拷转锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷谋锟斤拷锟斤拷锟斤拷锟斤拷锟酵★拷

<?php
$name 
'Felipe';

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

锟斤拷锟斤拷锟斤拷锟教伙拷锟斤拷锟斤拷锟�

NULL
string(6) "Felipe"

注锟斤拷

Note: 锟斤拷为锟斤拷一锟斤拷锟斤拷锟皆癸拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟杰憋拷 锟缴变函锟斤拷 锟斤拷锟矫★拷

Note:

It is possible to unset even object properties visible in current context.

Note:

锟斤拷 PHP 5 之前锟睫凤拷锟节讹拷锟斤拷锟斤拷锟斤拷锟斤拷 $this锟斤拷

Note:

锟斤拷 unset() 一锟斤拷锟睫凤拷锟斤拷锟绞的讹拷锟斤拷锟斤拷锟斤拷时锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟� __unset() 锟斤拷缘锟斤拷锟斤拷锟斤拷锟斤拷锟截凤拷锟斤拷锟斤拷

锟轿硷拷

  • isset() - 锟斤拷锟斤拷锟斤拷锟角凤拷锟斤拷锟斤拷锟矫诧拷锟揭凤拷 NULL
  • empty() - 锟斤拷锟揭伙拷锟斤拷锟斤拷锟斤拷欠锟轿拷锟�
  • __unset()
  • array_splice() - 去锟斤拷锟斤拷锟斤拷锟叫碉拷某一锟斤拷锟街诧拷锟斤拷锟斤拷锟斤拷值取锟斤拷