InfoQ

交流

讨论:unset()问题

作者 Hicazm 发布于 2003-09-01 分类:php基础编程

在php手册中有个unset()例子说:

[PHP] 如果在函数中 unset() 一个静态变量,则 unset() 将销毁此变量及其所有的引用。


<?php
function foo() {
static $a;
$a++;
echo "$a ";
unset($a);
}

foo();
foo();
foo();
?>



上边的例子将输出:

1
2
3

[/PHP]


为什么不是输出:
1
1
1
呢?



逛论坛交流unset()问题

加入书签
digg+,
reddit+,
del.icio.us+,
dzone+

相关讨论话题

7 条回复

回复

是不是他的问题?static $a; 发表人 tmyu 发表于 09月18日
他保留了原有的值 发表人 tmyu 发表于 09月18日
不过 unset($a); 摧毁 $a 了呀 发表人 Hicazm 发表于 09月18日
这个问题有点邪门! 发表人 jhtpersonal 发表于 09月18日
手册的解释错误,或者是PHP的BUG 发表人 KnightE 发表于 09月18日
admin at /networkessence dot net 2.. 发表人 KnightE 发表于 09月18日
  1. 返回顶部

    Re: unset()问题

    2003年09月18日 发表人 tmyu

    是不是他的问题?static $a;

  2. 返回顶部

    Re: unset()问题

    2003年09月18日 发表人 tmyu

    他保留了原有的值

  3. 返回顶部

    Re: unset()问题

    2003年09月18日 发表人 Hicazm

    不过 unset($a); 摧毁 $a 了呀

  4. 返回顶部

    Re: unset()问题

    2003年09月18日 发表人 jhtpersonal

    这个问题有点邪门!

  5. 返回顶部

    Re: unset()问题

    2003年09月18日 发表人 tmyu

    没看过静态变量的介绍,原因就搞不懂了:(

  6. 返回顶部

    Re: unset()问题

    2003年09月18日 发表人 KnightE

    手册的解释错误,或者是PHP的BUG

  7. 返回顶部

    Re: unset()问题

    2003年09月18日 发表人 KnightE

    admin at /networkessence dot net
    24-May-2002 08:40

    If a static variable is unset() inside of a function, unset() destroyes the variable and all its references.

    This statement is clearly false given the following example:

    function foo() {
    static $a;
    $a++;
    echo "$a ";
    unset($a);
    }

    foo();
    foo();
    foo();

    The above example would output:
    1
    2
    3

    If $a was being destroyed, then it would not increment (bug I guess). BUT
    unset does work properly outside of functions

    Example:

    static $a;
    $a++;
    echo $a;
    unset($a);
    $a++;
    echo $a;
    unset($a);

    would output:
    1
    1

    which is correct. I would assume this is a bug considering the output of the first example contradicts the manual.




  8. 我有话要讲:(可以匿名发表, 发广告的有多远请滚多远!!!)

    昵称: 请输入验证码:


抢着回答

电影下载

http://210.76.223.28/movie/ 我的机器,测试速度如何!

用PHP如何建立mysql用户,并给一定的权...

同题

!急!如何遍历类似a+b名的文件夹

在LINUX下,有lost+found的文件夹,还有“.abcd”似的文件夹,用...

恒纛窠!!

我做的页面为什么从别人的机子上访问时,每次刷新都不一样?变得...

很奇怪的問題﹐大家看看﹗﹗﹗

<script> var name="myqq",v...

二楼后座请进

什么时候?g 一个多月了,你不能再拖了。否则我也真的没办法了。...

五个无知的学生烟民

五个学生吸烟成瘾.一天他们在厕所吸烟,被教导主任看见,教导主任...

請問如何才能識別PHP3?

就是說在我的目錄下有個index.php3文件,用戶不需要輸入index.ph...

请问各位怎么实现网站页面间变量的传递...

请问各位怎么实现网站页面间变量的传递呢?! 比如我在注册页提交...

如果手机掉在马桶里(新版)

  如果手机掉在马桶里了,他们会怎么做?   布什:我们...

[]