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

2017-10-24  本文已影响0人  陈智涛

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、什么是静态变量

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

<?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
上一篇 下一篇

猜你喜欢

热点阅读