PHP是一种非严谨型的语言,变量可以直接使用无需声明,还会根据内容自动转变为相应的类型去执行的(例如数字字符串做乘法运算时自动转换为数字使用)。
1. PHP变量基础语法
$name = "Peter";
变量的命名规则需要注意的,有5条规则:
- 变量必须将$符号放在最前面;
- $符号后开头第一个必须是字母或是下划线(_);
- 只能包含字符a~z(小写),A~Z,0~9以及下划线(_);(特别注意不能用空格)
- 如果由多个单词构成,那单词之间可以用下划线(_)分隔;(例如:$first_name)
- 大小写敏感的。
2. PHP变量作用域
1. 全局作用域:
在函数外定义的变量,就拥有全局作用域。全局变量可以在脚本中任意访问,但在函数中访问全局变量,需要使用 global 关键字先声明。
$aaa = 2;
function test(){
global $aaa;
echo $aaa; //执行后输出2
}
2. 局部作用域
I. 局部变量(也叫临时变量):在函数内创建的变量,且只能在函数内被访问,且函数执行完后局部变量就会被清空。
需注意的是在函数外面的普通变量,函数内,类也访问不到,只能被函数和类以外的代码访问;
$aaa = 2;
function test(){
$aaa = 3;
echo $aaa; //执行后输出3,而不是2
}
II. 静态变量:是一种特殊的局部变量,使用关键字static声明。与普通局部变量不同的是,静态变量在函数执行完后不会被清空,会留存之前的值;
function test(){
static $aaa = 0;
echo $aaa;
$aaa++;
}
3. 超级全局变量:一些系统预设的超级全局变量,在程序中任何地方可以随意访问,无需特别声明;
超级全局变量都是以单一下划线开始且只用大写字母(除了$GLOBALS,没有下划线)。
常见的超级变量有:
- $GLOBALS:当前定义在脚本全局范围内的全部变量。变量名是数组的键名。
- $_SERVER:标题、路径和脚本位置之类的信息。网络服务器在这个数组中创建实体,不保证每个网络服务器会提供这些内容的部分或全部。
- $_GET:HTTP的GET方法传递给当前脚本的变量
- $_POST:HTTP的POST方法传递给当前脚本的变量