PHP使用变量或常量来实现数据在内存中的存储。变量和常量可以视为存储数据的容器,变量存储的数据在程序执行期间可以被程序所改变,而常量存储的数据是一个固定的值,不能改变
一、变量
在程序执行期间可以变化,用于临时存储值的容器
1、变量命名规范
必须以美元符号($)开头
必须字母或下划线开头,后跟任意数量的字母、数字或下划线。
美元符后不能紧跟数字
严格区分大小写,$name和$Name是不同的变量
内置结构(例if/else)、关键字(static)和用户自定义的类名、函数名不区分
可以不声明直接使用
在PHP中不需要使用显式的语法来专门声明变量,变量会在首次赋值时被初始化,也就是说设置一个变量的值,该语句即同时声明了变量。
常用的命名模式:小驼峰$firstName 或大驼峰$FirstName或下划线$first_name
打印变量
$name = 'Bob';
$Name = 'Joe'; //变量名区分大小写,$name和$Name是不同的变量
$4site = 'not yet'; // 非法变量名;以数字开头
$_4site = 'not yet'; // 合法变量名;以下划线开头
$i站点is = 'mansikka'; // 合法变量名;可以用中文,但是尽量不要这么用,会出现各种莫名其妙的问题
"可变变量"
允许我们动态地改变一个变量的名称。这个特性的工作原理是用一个变量的值作为另一个变量的名称。
$name = 'jack';
$$name = '聂哥';
echo $name,$jack;
//$jack 等价 $$name
PHP使用赋值运算符=给变量赋值,它提供了两种赋值方式:传值赋值和引用赋值
1、传值赋值
$a = "str";//定义一个变量
$b = $a; //赋值给$b
将变量$a的值复制出一份新的值(值是一样的),只是在内存中出现两份不同的内存空间。
2、引用赋值
除了传值赋值之外,PHP还提供了另外一个给变量赋值的方式,叫引用赋值。它是将变量的引用复制出来一份(新的引用还是指向原来的值),可以用不同的名字访问或操作同一个变量的内容,当改变其中一个变量的值时,另一个变量也跟着变化,引用赋值使用&符号
$a = "str";
$b = &$a;
使用引用,PHP引擎不会拷贝一份变量,而是将指针指向了$a在内存中的地址,$b中就是保存了这个指针。
unset 只会删除变量引用关系。并不会清空变量值对应的内存空间
未被初始化的变量
未被初始化的变量具有其类型的默认值。布尔类型的变量默认值是false,整型和浮点型变量默认为零,字符串类型变量默认值是空字符串,数组变量的默认值是空数组。
虽然在PHP并不需要初始化变量,但对变量进行初始化是一个良好的编程习惯。用户可以用PHP的isset()函数来检查一个变量是否被初始化。