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();
?>
静态变量
静态变量仅在局部函数域中存在,当函数执行离开次作用域时,其值并不会消失。