变量范围的另一个重要特性是静态变量。静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。看看下面的例子:

<?php

function test()
{
    $a = 0;
    echo $a;
    $a++;
}

每次调用时都会将 $a 的值设为 0 并输出 0。将变量加一的 $a++ 没有作用,因为一旦退出本函数则变量 $a 就不存在了。

要写一个不会丢失本次计数值的计数函数,要将变量 $a 定义为静态的:

<?php

function test()
{
    static $a = 0;
    echo $a.PHP_EOL;
    $a++;
}

test();
test();

结果输出

0
1

可变变量

一个变量的变量名可以动态的设置和使用,例如:

<?php

$a = 'hello';
$$a = 'world';

var_dump($a,$hello);

结果输出

string(5) "hello"
string(5) "world"

上例中动态设置了一个变量 $hello,通常多个 $ 会依次从最后边开始解析,最后生成 $ 前一个值为名称的变量。

<?php

$a = 'b';
$b = 'c';
$c = 'd';

$$$$a = 'bcd';

var_dump($d);

结果输出

string(3) "bcd"

 

 

 

常量

常量定义

命名规范

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。