1.拷贝传值和引用传址
定义:$a = $b 将值复制一份赋予$a
$a = &$b 将内存地址传递给$a
2.引用变量
定义:不同的变量指向相同的内存
使用:同引用传址
3.写时复制
拷贝传值时, $a不会立即开辟一块空间 , 而是在指向的内存发生变化时才复制
可使用memory_get_useage查看内存使用来验证
4.对象的传递
对象默认使用引用的方式传递, 复制需要使用clone()函数
5.unset()的作用
取消变量和内存的关系, 并非销毁内存
5.变量的底层结构zval
refcount: 引用计数, 代表对应内存被引用的次数, 为0时内存被销毁回收
is_ref: 是否以引用的方式指向内存空间
6.常量
define()函数, 常用于在class之外定义常量 如defined('YII_DEBUG') or define('YII_DEBUG', true)
const结构体, 常用于定义类常量
注意: 常量一经定义, 不得修改 (先定义的生效), 不能删除
7.预定义常量
__DIR__, __FILE__, __LINE__, __FUNCTION__, __TRAIT__, __NAMESPACE__, __CLASS__, __METHOD__,