PHP变量的作用域和静态变量

1、什么是变量的作用域

变量的作用域就是变量的范围,变量的范围即它定义的上下文背景(即它的生效范围),大部分PHP变量只有一个单独的范围,这个单独的范围跨度包含了include和require引入的文件
示例:

<?php
$outer = 'str';
function myFunc(){
    var_dump($outer);//打印为NULL,内部为局部变量
}
myFunc();

内部函数想要引用外部变量可以引入global关键字

<?php
$outer = 'str';
function myFunc(){
    global $outer;
    var_dump($outer);//打印为NULL,内部为局部变量
}
myFunc();

2、什么是静态变量

静态变量仅在局部函数域中存在,当函数执行离开此作用域时,其值不会消失。

  • static
    1.仅初始化一次
    2.初始化时需要赋值
    3.每次执行函数该值会保留
    4.static修饰的函数仅在函数内部有效
    5.可用于记录函数调用次数,从而在某些条件下终止递归
    示例1:
<?php
function myFunc(){
    static $a = 1;
    echo $a++;
}
myFunc();//1
myFunc();//2
myFunc();//3

示例2:

<?php
$count = 5;
function getCount()
{
    static $count;
    return $count++;
}
echo $count;//5
++$count;
echo getCount();//第一次调用,初始化为NULL,NULL++为1 由于是后++,第一次返回NULL
echo getCount();//第二次调用,count = 1
echo "\n";

运行结果:

5 1

3、函数的引用

示例:

<?php
function &myFunc(){
    static $b = 10;
    return $b;
}
$a = myFunc();
$a = &myFunc();
$a = 100;
echo myFunc();//100
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容