变量
php是一种动态网站开发的脚本语言,动态语言特点是交互性,会有数据的传递,而php作为“中间人”,需要进行数据的传递,传递的前提就是php能自己存储数据(临时存储)
变量的基本概念
变量来源于数学,是计算机语言中能存储计算结果或者能表示值抽象概念,变量可以通过变量名访问,在指令式语言中,变量通常是可变的。
1.变量是用来存储数据的;
2.变量是存在名字的
3.变量是通过名字来访问的;数据
4.变量是可以改变的:数据
变量的使用
PHP中所用的变量必须使用“$”符号
1.定义:在系统中增加对应的变量名字(内存)
2.赋值:可以将数据赋值给变量名(可以在定义的同时完成)
3.可以通过变量名访问存储的数据
<?php
//变量
//定义变量:在php中不需要任何关键字定义变量(赋值)
$var1; //定义变量
$var2=1; //定义同时赋值
//访问变量
echo $var2;//通过var2变量名字找到存储内容1,然后输出
4.可以将变量从内存中剔除
删除变量,使用unset(变量名字)
unset($var2)
变量命名的规则
1.在php中变量名字必须以“$”符号开始
2.名字由字母,数字和下划线“_”构成,但不能以数字开头
3.php本身还允许中文变量(不建议)
$var_1;$var_var_1;$_var1; //正确格式
$1var //错误格式
预定义变量
预定义变量:提前定义的变量,系统定义的变量,存储许多需要用到的数据(预定义变量都是数组)
$_GET:获取所有表单以get方式提交的数据
$_POST:POST提交的数据都会保存在此
$_REQUEST:GET和POST提交的都会保存
$GLOBALS:PHP中所有的全局变量
$_SERVER:服务器信息
$_SESSION:session会话数据
$_COOKIE:cookie会话数据
$_ENV:环境信息
$_FILES:用户上传的文件信息
可变变量
如果一个变量保存的值刚好是另一个变量的名字,那么可以直接通过访问一个变量的到另一个变量的值:在变量前面多加一个$符号
<?php
$var1='a';
$a='b';
echo $$var1;
//运行显示结果为 b
解析一下这个过程其实很简单
1.找到$var1,解析得到结果:a
2.将前面的$符号与结果a绑定,$a,然后第三步解析得到 b
变量传值
将一个变量赋值给另一个变量:变量传值
变量传值一共有两种方式:值传递,引用传递
值传递:将变量保存的值赋值一份,然后将新的值给另一个变量保存(两个变量没有关系)
引用传递:将变量的值所在的内存地址,传递给另外一个变量:两个变量指向同一块内存空间(两个变量是同一个值)
$新变量=&$老变量
在内存中,通常有以下几个分区
栈区:程序可以操作的内存部分(不存数据,运行程序代码),少但是快
代码段:存储程序的内存部分(不执行)
数据段:存储普通数据(全局区和静态区)
堆区:存储复杂程序,大但是效率低
代码实现: