当前位置: 首页 > news >正文

php 地址引用

php的地址引用与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容在内存中存放的地址 。
废话少说,先看例子,

<? php 
   
$a = " ABC "
   
$b   =& $a
   
echo   $a // 这里输出:ABC 
    echo   $b // 这里输出:ABC 
    $b = " EFG "
   
echo   $a // 这里$a的值变为EFG 所以输出EFG 
    echo   $b // 这里输出EFG 
?>  

 

上面的例子大家都明白,就不再多说了。那么看看下面的例子呢?

<? php 
   
$a   =   " ABC "
   
$b   =&   $a
   
unset  ( $a ); 
   
echo   $b // 这里输出:ABC 
?>  

 

原来是这个样子的,当你 unset 一个引用,只是断开了变量名和变量内容之间的绑定。这并不意味着变量内容被销毁了。
 
//下面再来个小插曲
php中对于地址的指向(类似指针)功能不是由用户自己来实现的,是由Zend核心实现的,php中引用采用的是“写时拷贝”的原理,就是除非发生写操作,指向同一个地址的变量或者对象是不会被拷贝的。
通俗的讲,如果有下面的代码

<? php 
   
$a = " ABC "
   
$b = $a
?>

 

其实此时 $a与$b都是指向同一内存地址 而并不是$a与$b占用不同的内存
2:如果在上面的代码基础上再加上如下代码

$a = " EFG " ;

 

由于$a与$b所指向的内存的数据要重新写一次了,此时Zend核心会自动判断 自动为$b生产一个$a的数据拷贝,重新申请一块内存进行存储

转载于:https://www.cnblogs.com/liulei/archive/2010/03/13/1684842.html

相关文章:

  • 《软件设计精要与模式》第二版推荐序四
  • Flash/Flex学习笔记(14):制作涂鸦板
  • repeater 当前行号
  • js几个验证函数
  • 在做JAVA和UCENTER整合登陆时一个要注意的问题
  • 自定义SiteMapProvider实现动态加载SITEMAP
  • linux操作: 快捷键记录
  • [转] Silverlight Navigation(多页面切换、传值) 之 一
  • jQuery 表格工具集
  • 信息化建设的常识
  • VS2010下载,vs2010正式版下载
  • [转载]php-数组操作foreach、each、reset、list
  • 事繁勿慌 -- 忙啊!
  • 财经郎眼《解读楼市调控》观后总结(房价高居不下的真正原因)
  • 一起学Windows phone 7开发(二.页面间跳转与传值)
  • 【mysql】环境安装、服务启动、密码设置
  • AWS实战 - 利用IAM对S3做访问控制
  • C语言笔记(第一章:C语言编程)
  • FastReport在线报表设计器工作原理
  • HTML-表单
  • Intervention/image 图片处理扩展包的安装和使用
  • JavaScript设计模式系列一:工厂模式
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • Mysql5.6主从复制
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • react-native 安卓真机环境搭建
  • STAR法则
  • Unix命令
  • Vue2.0 实现互斥
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 二维平面内的碰撞检测【一】
  • 关于List、List?、ListObject的区别
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 目录与文件属性:编写ls
  • 写代码的正确姿势
  • 自动记录MySQL慢查询快照脚本
  • gunicorn工作原理
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​马来语翻译中文去哪比较好?
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #pragma pack(1)
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (安卓)跳转应用市场APP详情页的方式
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (算法)Game
  • (一)RocketMQ初步认识
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转)我也是一只IT小小鸟
  • ./和../以及/和~之间的区别
  • .axf 转化 .bin文件 的方法
  • .bat批处理(十一):替换字符串中包含百分号%的子串