引用变量
来源:互联网 发布:mac口红销量前三的颜色 编辑:程序博客网 时间:2024/09/21 09:29
引用变量的定义
用不用的名字访问同一个变量内容 &
延伸 :php引用变量的原理
1 变量空间存储方式
$a = range(0,1000);var_dump(memory_get_usage());//变量a会开辟one空间,存储a,将a赋值给b之后,b不会占用一个新的空间,会和a共用一块空间,a和b同时指向one空间$b = $a;var_dump(memory_get_usage());//对a进行修改 写操作 此时原来a就不会指向one空间,b指向one空间,a会开辟一块新空间two空间$a = range(1,1000);var_dump(memory_get_usage());
2 引用
$a = range(0,1000);var_dump(memory_get_usage());//变量a会开辟one空间,使用引用之后,将a的地址给了b,a和永远会指向同一空间$b = &$a;var_dump(memory_get_usage());//对a进行修改,改掉的只是空间值,使用引用之后,永远指向同一个空间,a和b的值是修改之后的值$a = range(1,1000);var_dump(memory_get_usage());
zval结构体
$a = range(0,3);xdebug_debug_zval('a');
打印结果如下
1 代表变量空间的变量个数 2 是否有引用
unset 只会取消引用,不会销毁内存空间
$a = 1; $b = &$a; unset($b); echo $a;die();
将$a的引用给去掉,则打印$a为1,$b就是不存在的变量了
对象 本身就是引用,不需要加引用符号
class Person{ public $name = '张三';}$p1 = new Person();$p2 = $p1;$p2->name = '王五';
真题分析
$data = ['a','b','c'];foreach($data as $key => $val){ $val = &$data[$key];}//程序运行时,每一次循环结束后变量$data的值是什么,请解释//程序执行完成后,变量$data的值是什么,请解释
阅读全文
0 0
- 变量引用
- 引用变量
- 引用变量
- 引用变量
- 引用变量
- 引用变量
- 引用变量
- 变量引用
- 引用变量
- 引用变量和引用数组
- 引用不是变量,引用只是引用
- PHP变量引用、函数引用、对象引用
- c++引用变量
- 引用局部变量地址
- shell 变量和引用
- 使用引用成员变量
- 变量引用问题
- 变量、指针、引用
- Android中的Java,class,dex,apk
- python中的MRO与多继承
- Java并发编程的艺术-笔记2
- UVM usage
- Access/VBA/Excel-多条件筛选数据-10
- 引用变量
- nexus 离线下载中央库索引
- 函数指针与宏的简单应用
- iOS 第三方库
- 指数型母函数模板
- 算法的封装与切换——策略模式(三)
- 移动光标到相应的文本(比如项目中,插入了图片之后,即在插入的地方显示光标)
- case表达式和decode函数
- iPtables规则保存及加载等操作