【问题标题】:Scope of static variable of member function成员函数静态变量的作用域
【发布时间】:2012-04-30 13:41:53
【问题描述】:

如果我在类的(非静态)成员函数中声明了一个静态变量,它是该类的每个实例的静态变量,还是所有实例的静态变量?抱歉,如果答案很明显,我在任何地方都找不到。

编辑:

我已接受 zerkms 的回答,但这里有另一个例子:

<?php

class X {
  public function fun($bar) {
    static $foo = null;
    if ($foo != null) print $foo . "<br/>";
    $foo = $bar;
  }
}

$x1 = new X();
$x1->fun(42);

$x2 = new X();
$x2->fun(123);
$x2->fun(666);

?>

输出:
42
123

【问题讨论】:

    标签: php instance scope static-variables member-functions


    【解决方案1】:
    1. 检查需要几分钟时间
    2. 它在所有实例之间共享

    http://ideone.com/Cq2s6

    【讨论】:

    • 在使用 PHP 超过 10 年之后,我仍在学习这门语言。
    • 感谢您的回答。在第 1 点,是的,我在发布问题后立即对其进行了测试。我不后悔问它,因为现在需要它的其他人可以获得更多的答案。出于这个原因,为了便于搜索,我仔细地措辞了我的标题和标签。 SO 和 Q&A 一样是参考资料...
    猜你喜欢
    • 1970-01-01
    • 2011-09-07
    • 2020-08-09
    • 1970-01-01
    • 2011-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多