PHP什么是静态关键字

时间:2019-06-29 18:01:20

标签: php function static

什么是函数中的静态关键字?

w3school

  

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

我不理解,谁能告诉我一些代码来理解它?

1 个答案:

答案 0 :(得分:2)

static有两种不同用途:

1. For classes:

使方法或属性可访问,而无需实例化该类。

<?php
class Foo {
    public static function aStaticMethod() {
        // ...
    }
}

Foo::aStaticMethod(); 

2. For functions:

静态变量仅存在于局部函数作用域中,但是当程序执行离开该作用域时,它不会丢失其值。

<?php
function test()
{
    static $a = 0;
    echo $a;
    $a++;
}
test(); // 0
test(); // 1
test(); // 2

无静态:

<?php
function test()
{
    $a = 0;
    echo $a;
    $a++;
}
test(); // 0
test(); // 0
test(); // 0

在可能的情况下使用它是一个好习惯,而不是用垃圾填充全局范围。