2.1引用变量考点

2017-09-01  本文已影响52人  followyounger1

全方位剖析

回顾真题
考点分析
一网打尽

什么是引用变量?在PHP当中,用什么符号定义引用变量?
思考
考官考点

PHP的引用变量的概念及定义方式
延伸:PHP引用变量的原理

概念
在PHP中引用意味着用不同名字访问同一个变量内容。

定义方式
使用&符号

PHP引用变量的工作原理

工作原理

变量的存储方式
$a = range(0,1000);
var_dump(memery_get_usage());

就指向内存空间;

$b = $a;

//对a进行写操作
$a = range(0,1000);

$b = &$a; 会始终指向同一个区域。

zval变量容器

$a = range(0,3);

xdebug_debug-zval('a');

Paste_Image.png

unset 只会取消引用,不会销毁空间

$a = 1;
$b = &$a;
unset($b);
echo $a;

Paste_Image.png

<?php

class Person{
public $name = 'zhangjun';
}

$p1 = new Person;

xdebug_debug_zval('p1');

$p2 = $p1;
xdebug_debug_zval('p2');
$p2->name = "list";
xdebug_debug_zval('p2');

类本身是引用传递

copy on write

//对a进行修改,才会重写分配空间。

Paste_Image.png Paste_Image.png

会循环四次
结果bbc

【a,b,c】
[b,b,c]
[b,c,c]
[b,c,c]

发现第二个里面 b的值,会变为c



Paste_Image.png
上一篇下一篇

猜你喜欢

热点阅读