PHP变量作用域及静态变量

2017-09-02  本文已影响0人  陈智涛

1.读程题

<?php

/**
 * 写出如下程序的输出结果:
 * <?php
 *
 * $count = 5;
 * function get_count()
 * {
 *     static $count;
 *     return $count++;
 * }
 * echo $count;
 * ++$count;
 *
 * echo get_count();
 * echo get_count();
 * 
 * ?>
 *
 */

$count = 5;
function get_count()
{
    static $count;  
    return $count++;
}

echo $count;//输出5
++$count;//count 变成6

echo get_count();// 静态变量 未初始化 所以为NULL echo为空,++变成1
echo get_count();//输出1

//输出结果:51 这里还考了前++和后++  如果把上一题改为前++ 则输出:512

变量的作用域

变量的作用域就是变量的生效的范围,大部分PHP变量只有一个单独的范围,这个单独的范围同样包括了include 和 require 引入的文件

<?php
$outer = 'hello world';//全局变量
function myFunc(){
    
    echo "output ".$outer."\n";//输出是空   因为是局部变量
}
myFunc();
?>

使用global引入或者超全局变量$GLOBALS

<?php
$outer = 'hello world';
function myFunc(){
    global $outer;
    echo "output ".$outer."\n";//输出是 hello world 因为引入了全局变量
}
myFunc();
?>


<?php
$outer = 'hello world';
function myFunc(){
    // global $outer;
    $outer = $GLOBALS['outer'];
    echo "output ".$outer."\n";//输出是 hello world 因为引入了全局变量
}
myFunc();
?>

静态变量

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

屏幕快照 2017-09-02 下午2.20.52.png 屏幕快照 2017-09-02 下午2.21.47.png
上一篇下一篇

猜你喜欢

热点阅读