PHP:第一章——PHP中的变量002

时间:2021-06-03 14:41:05

预定义变量、变量的有效范围、可变变量、静态变量、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'];
*/ ?>