1.7 变量
变量的本质就是内存中的一段空间
1.7.1 变量的命名规则
- 变量必须以开头,符不是变量的一部分,仅表示后面的标识符是变量名。
- 除了$以外,以字母、下划线开头,后面跟着数字、字母、下划线
- 变量名区分大小写,aa和Aa是两个空间
下列变量是否合法
$a 合法
$a1 合法
$1a 不合法
$_1a 合法
注意:PHP语句必须以分号结尾
<?php
$a=10;
$name='Tom';
?>
1.7.2 可变变量
变量名可以变,将变量名存储在另外一个变量中
例题
<?php
$a=10;
$b='a';
echo $$b; //10
例题
<?php
$name1='tom';
$name2='berry';
if(rand(1,10)%2){
$name='name1'; //将变量名存储在$name中
}else{
$name='name2';
}
echo $$name;
小结:
1、rand(1,10):获取1-10的随机整数
1.7.3 变量传递
变量的传递有值传递和地址传递(引用传递)
<?php
//值传递
$num1=10; //将10付给$num1
$num2=$num1; //将$num1的值付给$num2
$num2=20; //更改$num2
echo $num1; //10
//地址传递
$num1=10; //将10付给$num1
$num2=&$num1; //将$num1的地址付给$num2
$num2=20; //更改$num2
echo $num1; //20
小结:
1、参数的传递有两种,值传递和地址传递
2、&表示获取变量的地址
3、值传递中,一个变量变了,另一个变量没有影响,因为是两个空间
4、地址传递中,一个变量变了,另一个也变了,因为两个变量指向同一个空间
1.7.4 销毁变量
用unset()来销毁变量,销毁的是变量名,变量值由PHP垃圾回收机制销毁
<?php
$num1=10;
$num2=&$num1;
unset($num1); //销毁的是变量名
echo $num2; //10
没有变量引用的值是垃圾。