首页 > 解决方案 > PHP 什么是静态关键字

问题描述

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

w3school

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

我不明白,谁能给我一些代码来理解它?

标签: phpfunctionstatic

解决方案


static有两种不同的用途:

1. 上课:

无需类的实例化即可访问方法或属性。

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

Foo::aStaticMethod(); 

2.对于功能:

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

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

尽可能使用它是一个好习惯,而不是用垃圾填充全局范围。


推荐阅读