|
导读网页的本质就是超级文本标记语言,通过结合使用其他的Web技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立... 网页的本质就是超级文本标记语言,通过结合使用其他的Web技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立在超文本基础之上的。超级文本标记语言之所以称为超文本标记语言,是因为文本中包含了所谓“超级链接”点。 php引用变量是什么?如何定义引用变量?本篇文章将从内存空间上简述PHP中引用变量的基本概念、工作方式,以及一个常见的实例。概念什么是引用变量,在PHP当中,用什么符号定义引用变量? 不同的名字访问同一个变量内容,使用&表示。 COW(copy on write) 内存优化的常见手段,在php中也采用了这种方式来优化内存。 写时复制,即只有当对其中一个或多个变量进行写操作的时候,才会复制一份内存,对其内容进行修改。 在PHP中使用memory_get_usage()观察内存变化 演示未使用&(引用变量) $a = range(0,1000);
var_dump(memory_get_usage());
$b = $a;`
var_dump(memory_get_usage());
$a = range(0,1000);
var_dump(memory_get_usage());运行结果:
内存在第一次和第二次并没有太大的差异,第三次产生较大差异 使用 & $a = range(0,1000);
var_dump(memory_get_usage());
$b = &$a;
var_dump(memory_get_usage());
$a = range(0,1000);
var_dump(memory_get_usage());运行结果:
在使用引用传值内存解析分析:
unset
$a=1; $b=&$a; unset($b); echo $a; 输出结果: 内存空间分析:
$a被赋值 $b=&$a之后$a与$b直行同一内存空间,当unset($b)时取消了$b对$a的引用,使$b不在指向$a的内存空间 题外话对象本身就是引用传递 class Person
{
public $name="zhangsan";
}
$p1 =new Person;
xdebug_debug_zval('p1');
$p2 =$p1;
xdebug_debug_zval('p1');
$p2->name="lisi";
xdebug_debug_zval('p1');运行结果:
结果分析:
对象被实例后经引用传递之后 案例 <?php
$data = ['a', 'b', 'c'];
foreach($data as $key => $val)
{
$val = &$data[$key];
}
var_dump($data);写出如上程序的输出结果? 内存变化及解析:
相关推荐: 以上就是php引用变量是什么?php引用变量的实例讲解的详细内容,更多请关注php中文网其它相关文章! 网站建设是一个广义的术语,涵盖了许多不同的技能和学科中所使用的生产和维护的网站。 |
温馨提示:喜欢本站的话,请收藏一下本站!