变量的概念
变量来源于数学,是计算机语言中能储存计算结果或者能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的。
- 变量是用来存储数据的;
- 变量是存在名字的;
- 变量是通过名字来访问的:数据;
- 变量是可以改变的:数据。
变量的使用
php中所有的变量都必须使用”$“符号
- 定义: 在系统中增加对应的变量的名字(内存)
- 赋值:可以将数据赋值给变量(可以在定义的同时完成)
- 可以通过变量名访问存储的数据
- 可以将变量从内存中删除
<?php
//变量
//定义变量: 在php中不需要任何关键字定义变量(赋值)
$var1;
$var2 = -1;
//访问变量
echo $var2; //通过var2变量名字找到存储的把内容-1,然后打印出来
$var2 = 2;
echo '<hr/>',$var2;
//删除变量:使用unset(变量名字)
unset($var2);
echo $var2;
变量的一个命名规则
- 在php中变量名字必须以“$”符号开始
- 变量有字母、数字、和下划线“_”构成,但是不能数字开头
- 在php中本身还允许中文变量名(但是不建议使用)
//正确
$var_1 = 1;
$var_var_1 = 2;
$_var1 = 3;
//错误
$1var =4;
//中文变量
$中国 = 'china';
预定义变量
预定义变量:提前定义的变量,系统定义的变量,储存许多需要用到的数据(预定义变量都是数组)
$_POST: 获取所有表单以get方式提交的数据
$_GET: 获取所有表单以post方式提交的数据
$_REQUEST: GET和POST提交的都会保存
$GLOBALS: PHP中所有的变量信息
$_SERVER: 服务器信息
$_SESSION: session会话数据 服务器端
$_COOKIE: cookie会话数据 用户端端
$_ENV: 环境信息
$_FILES: 用户上传的文件信息
可变变量
可变变量:如果一个变量保存的值刚好是另外一个变量的名字,那么可以直接通过访问一个变量得到领完一个变量的值:在变量前面多加一个$符号
$a ='b';
$b = 'bb';
echo $$a =$b; bb
变量传值
变量传值:将一个变量赋值给另外一个变量
变量传值一共有两种方式:值传递、引用传递
- 值传递:将变量保存的值赋值一份,然后将新的值给另外一个变量保存(两个变量没有关系)
- 引用变量:将变量保存的值所在的内存地址,传递给另外一个变量:两个变量指向同一块内存空间(两个变量是同一个值)
在内存中,通常有一些几个分区:
栈区:程序可以操作的内存部分(不存数据,运行程序代码),代码少,但是运行速度快
代码段:存储程序的内存部分(不执行代码)
数据段:存储普通数据(全局区和静态区)
堆区:存储数据(复杂数据),内存大,但是效率低
代码实现
/*值传递*/
$a = 10;
$b = $a;
$b =5;
echo $a,$b,'<hr>';
/*引用传递*/
$c = 10;
$d = &$c;
$c = 5;
echo $c,$d,'<hr>';
扩展—php的数组
索引数组
带索引值的数组
//索引数组
$arr = [1,2,3,4];
var_dump($arr);
关联数组
关联数组的下标(键名)由数值和字符串混合的形式组成,如果一个数组中有一个键名不是数字,那么这个数组就是关联数组。
//关联数组
$array = ["name"=>"xiaokang","sex"=>"18"];
var_dump($array);