一、变量
变量就像一个贴着名字标签的空盒子。
1.1变量的声明
PHP变量是弱类型,不需对每一个都声明类型;PHP变量表示一般以“$”作为前缀,然后以字母a~z的大小写或者“_”下划线开头。
PHP的赋值有两种,即传值和引用,区别如下:
(1)、传值赋值:使用"="直接将赋值表达式的值赋给另一个变量。 (2)、引用赋值:将赋值表达式的内存空间的引用赋给另一个变量。需要在"="右的变量前面加上一个"&"符 号。在使用引用赋值的时候,两个变量将会指向一个内存,多以任意一个变量改变都会引 起另一个变量的变化。
1.2可变变量
可变变量允许改变一个变量的变量名,允许使用一个变量的值作为另一个变量的名。
<?php $sys = "sun"; //定义一个变量 $$sys = "zhang"; //$$sys 即为 $sun ?>
1.3变量的作用域
(1)、超全局变量不管程序在任何地方都可以访问到,不管是函数内还是函数外都可以访问到,PHP预先定义好的方便使用:
$GLOBALS:包含全局变量的数组。 $_GET:所有通过GET方法传递给代码的变量的数组。
$_POST:所有通过POST方法传递给代码的变量的数组。 $_FILES:文件上传变量的数组。 $_COOKIE:cookie变量的数组。 $_SERVER:服务器环境变量的数组。 $_ENV:环境变量的数组。 $_REQUEST:输入内容的数组(包括$_GET\$_POST\$_COOKIE)。 $_SESSION:会话变量的数组。
(2)、全局变量:函数外声明的变量,在代码间可以访问,但在函数内不能访问。因函数默认不能方位其外部的全局变量。如果想让函数访问某个全局变量通过global关键字来声明。
<?php $sun = 20; function showsun() { global $sun; //函数内调用全局变量 $sun = $GLOBALS['sun']; //通过$GLOBALS数组访问全局变量 } ?>
(3)、静态变量:只在函数内存在,在函数外无法访问,执行后其值保留,下次进入函数值继续使用。
1.4变量的销毁
当用户创建一个变量的时候,内存会专门有一个空间存放该变量,该空间引用计数+1,当变量与该空间联系被断开的时候空间引用计数-1,直到引用计数为0,则成为垃圾。
PHP有自动回收垃圾的机制。我们也可以手动销毁但只能销毁局部变量使用函数:void unset(变量);