Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:类外的静态变量_Php_Static - Fatal编程技术网

PHP:类外的静态变量

PHP:类外的静态变量,php,static,Php,Static,我在第三方代码中看到过一个声明为静态的变量,但在任何类之外,只是在一个“普通”函数中 <?php function doStuff(){ static $something = null; } ?> 我从来没有见过这样使用static,在PHP文档中也找不到它 这是合法的PHP代码吗?这实际上与全局变量相同吗?如果没有,目的是什么 变量作用域的另一个重要特征是静态变量。 静态变量只存在于局部函数作用域中,但它确实存在 当程序执行离开此范围时,不会失去其价值 <?p

我在第三方代码中看到过一个声明为静态的变量,但在任何类之外,只是在一个“普通”函数中

<?php
function doStuff(){
    static $something = null;
}
?>

我从来没有见过这样使用
static
,在PHP文档中也找不到它

这是合法的PHP代码吗?这实际上与全局变量相同吗?如果没有,目的是什么

变量作用域的另一个重要特征是静态变量。 静态变量只存在于局部函数作用域中,但它确实存在 当程序执行离开此范围时,不会失去其价值

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

现在,$a只在函数的第一次调用中初始化,每次 调用test()函数,它将打印$a和 增加它


@弗雷泽:不。“它只初始化了一次。”弗雷泽我引用了PHP手册中的全部答案。如果你不同意,请与他们联系:)。我会恳请投票人陈述他的理由——我很乐意改进我的答案。