变量
PHP是一种动态网站开发的脚本语言,动态语言特点是交互性,交互性就会有数据的传递,而’PHP’作为"中间人",需要进行数据的传递,传递的前提就是PHP能自己存储数据(临时存储),这就需要变量;
变量基本概念
变量来源于数学,是计算机语言中能存储计算结果或能表示值抽象概念;变量可以通过变量名访问,在指令式语言中,变量通常是可变的;
1.变量是用来存储数据的;
2.变量是存在名字的;
3.变量是通过名字来访问的:数据;
4.变量是可以改变的:数据;就像杯子一样,可以装不同的饮品,但是杯子没变;
变量的使用
PHP中的所有变量都必须要使用"$"符号;
1.定义:在系统中添加对应的变量名字(内存);
2.赋值:可以将数据赋值给变量名(可以在定义的同时完成);
3.可以通过变量名访问存储的数据;
4.可以将变量从内存中删除;
使用样例
<?php
//变量
//定义变量在php中不需要任何关键字,只要$符号
$var1; //定义变量
$var2=1; //定义变量并赋值
//访问变量
echo $var2; //通过变量名访问到内容1,然后输出
//修改变量
$var2=2; //相当于把杯子里的水倒掉换成果汁
echo $var2; //修改后通过变量名访问到内容2,然后输出
//删除变量:使用unset(变量名)
unset($var2);
echo $var2; //删除后该变量不存在故而无法访问,删除内存
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
变量命名规则
1.在PHP中变量名字必须以"$“符号开始;
2.名字由字母,数字和下划线”_"构成,但是不能以数字开头;
3.在PHP中本身还允许中文变量(不建议这样做);
//变量命名规则
$var1;$var_var_1;$_var1; //正确格式
$1var; //错误格式
//中文变量
$中国='China'; //中文变量并赋值
1
2
3
4
5
6
预定义变量
预定义变量:提前定义的变量,系统定义的变量,存储中许多需要用到的数据(预定义变量都是数组);
$_GET:获取所有表单以get方式提交的数据;
$_POST:POST提交的数据都会保存在此;
$_REQUEST: GET和POST提交的都会保存;
$GLOBALS:PHP中所有的全局变量
$_SERVER:服务器信息
$_SESSION:session会话数据
$_COOKIE:cookie会话数据
$_ENV:环境信息
$_FILES:用户上传的的文件信息
可变变量
可变变量:如果一个变量保存的值刚好是另外一个变量的名字,那么可以直接通过访问一个变量得到另外一个变量的值,在变量前面再多加一个$符号;
$a='b';
$b='bb';
//$$a就可以得到 bb
1
2
3
变量传值
将一个变量赋值给另一个变量:变量传值;
变量传值一共有两种方式:值传递,引用传递;
值传递:将变量保存的值赋值一份,然后将新的值给另外一个变量保存(特点就是两个变量没有关系);
引用传递:将变量保存的值所在的内存地址,传递给另外一个变量:两个变量指向同一块内存空间(两个变量是同一个值);
在内存中,通常有以下几个分区;
栈区:程序可以操作的内存部分(不存数据,但运行程序代码),少但是快;
代码段:存储程序的内存部分(只存储不执行);
数据段:存储普通数据(全局区和静态区等);
堆区:存储复杂数据,大但是效率低;
<?php
$a=1;
$b=$a; //值传递
$b=2;
echo $a,$b; //1,2
1
2
3
4
5
<?php
$a=1;
$b=&$a; //引用传递
$b=2;
echo $a,$b; //2,2
1
2
3
4
5
文章记录来源于B站up主黑马程序员发布的视频学习;1
https://www.imdb.com/list/ls085108836/
https://www.imdb.com/list/ls085108867/
https://www.imdb.com/list/ls085108866/
https://www.imdb.com/list/ls085108864/
https://www.imdb.com/list/ls085108869/
https://www.imdb.com/list/ls085108840/
https://www.imdb.com/list/ls085108842/
https://www.imdb.com/list/ls085108848/
https://www.imdb.com/list/ls085108895/
https://www.imdb.com/list/ls085108896/
https://www.imdb.com/list/ls085150001/
https://www.imdb.com/list/ls085150009/
https://www.imdb.com/list/ls085150052/
https://www.imdb.com/list/ls085150013/
https://www.imdb.com/list/ls085150505/
https://www.imdb.com/list/ls085150571/
https://www.imdb.com/list/ls085150578/
https://www.imdb.com/list/ls085150519/
https://www.imdb.com/list/ls085150568/
https://www.imdb.com/list/ls085150582/
https://www.imdb.com/list/ls085150732/
https://www.imdb.com/list/ls085150793/
https://www.imdb.com/list/ls085150117/
https://www.imdb.com/list/ls085150113/
https://www.imdb.com/list/ls085150119/
https://www.imdb.com/list/ls085150162/
https://www.imdb.com/list/ls085150120/
https://www.imdb.com/list/ls085150121/
https://www.imdb.com/list/ls085150129/
https://www.imdb.com/list/ls085150146/
https://www.imdb.com/list/ls085150183/
https://www.imdb.com/list/ls085150300/
https://www.imdb.com/list/ls085150306/
https://www.imdb.com/list/ls085150355/
https://www.imdb.com/list/ls085150359/
https://www.imdb.com/list/ls085150374/
https://www.imdb.com/list/ls085150317/
https://www.imdb.com/list/ls085150319/
https://www.imdb.com/list/ls085150337/
https://www.imdb.com/list/ls085150339/
https://www.imdb.com/list/ls085150325/
https://www.imdb.com/list/ls085150323/
https://www.imdb.com/list/ls085150326/
https://www.imdb.com/list/ls085150329/
https://www.imdb.com/list/ls085150347/
https://www.imdb.com/list/ls085150395/
https://www.imdb.com/list/ls085150396/
https://www.imdb.com/list/ls085150380/
https://www.imdb.com/list/ls085150387/
https://www.imdb.com/list/ls085150386/