PHP"静态"关键字误导其不保留新价值

时间:2016-10-30 01:36:10

标签: php static increment addition

好吧我对静态关键字

有疑问

根据下面的w3wchools.com

  

通常,当函数完成/执行时,其所有变量都将被删除。但是,有时我们希望删除局部变量。我们需要它来做进一步的工作。

     

为此,请在首次声明变量时使用static关键字:

//w3school code below
function myTest() {
    static $x = 0;
    echo $x;
    $x++;
myTest();
myTest();
myTest();
}

现在这样做基本上是使用++增量运算符计数0,1,2。很好,它做静态的定义描述它做什么

现在如果我基本上以另一种方式做同样的事情,我的代码在下面...... $ x不会增加它只是保持在0。

//my code version below
function myTest() {
    static $x = 0;
    echo $x;
    $x + 1;
myTest();
myTest();
myTest();
}

这些基本上是在理论上做同样的事情

w3schools版本使用++运算符将$ x递增1。增量意味着添加

我的版本使用+运算符添加1 ...并添加添加的方法

因此可以肯定地说静态仅适用于增量运算符 而不是基本的数学运算符?

1 个答案:

答案 0 :(得分:0)

这与static关键字无关。代码$x+1根本不会更改$x的值,因此它永远不会增加。 $x+=1$x = $x + 1会产生你想要的效果。