预定义变量、变量的有效范围、可变变量、静态变量、php之外的变量
<?php /*****************************************************/ //预定义变量: //$GLOBALS —— 引用全局作用域中可用的全部变量; //$_SERVER —— 服务器和执行环境信息 //$_GET ——HTTP GET变量 //$_POST —— HTTP POST变量 //$_FILES ——HTTP文件上传的变量 //$_REQUEST —— HTTP REQUEST变量 //$_ENV ——环境变量 //$_COOKIE ——httpCookies // $argc ——传递给脚本的参数数目 // $argv ——传递给脚本的参数数组 // $php_errormsg ——前一个错误信息 // $HTTP_RAW_POST_DATA ——原生POST数据 // $http_response_header ——HTTP响应头信息 /*****************************************************/ //变量的有效范围:指变量能够被检测到及能被使用的范围; //页级全局变量在函数中无法生效。 //例: /*$yeji='页级全局变量'; function myfunction(){ var_dump(isset($yeji)); //这里返回bool(false),无法检测到这个变量 } myfunction();*/ //函数中局部变量,在函数外无法访问 //例2: /*function myfun(){ $a='函数中的变量'; } myfun(); var_dump($a); //输出null,不存在$a变量*/ //使用global关键字进行声明,强制变量的可见范围: /*$a=1;$b=2; function sum(){ global $a,$b; $b=$a+$b; } sum(); echo $b;//输出3;*/ //使用$GLOBALS超全局变量数组 //$a=1;$b=5; //function sum(){ // $GLOBALS['b']=$GLOBALS['a']+$GLOBALS['b']; //} //sum(); //echo $b; /*****************************************************/ //可变变量: //例1: //$v1='PHP'; //$$v1='学院'; //echo $PHP;//输出:学院 //例2: //$v2='seo'; //$$v2='大学'; //echo $v2.${$v2};//输出seo大学 /*****************************************************/ //静态变量: /* 1.原理:static + 变量名 + 值 2.静态变量在内存中多了一个是否初始化标识符。 3.未有新的声明和原有声明不变的情况下。静态变量保持最后一次运行结果。 4.在函数中声明的静态变量,作用域只保存在函数中有效。 */ //例1:静态变量的定义. //static $int=0; //例2:静态变量的作用域: //通过静态变量统计函数被调用的次数 /*function counter(){ static $a=1; echo $a.'<br/>'; $a++; static $a=1; } counter();//输出1; counter();//输出2 counter();//输出3*/
//例:
/*
$a=3;
echo $a;//输出:3
static $a=6;
echo $a;//输出:12.静态变量会在编译阶段声明提升。
$a=9;
echo $a;//输出:9
static $a=12;
echo $a;//输出:9
*/ /*****************************************************/ //php之外的变量:(提交表单得到的变量) /*login.html里面的内容部分: <form action="index.php" method="post"> 用户名01:<input type="text" name="username01"/> 用户名02:<input type="text" name="username02"/> <input type="submit" value="提交"/> </form> */ /* //index.php中的内容部分 echo $_POST['username01']; echo $_REQUEST['username02']; */ ?>