位置: 编程技术 - 正文

php 变量引用与变量销毁机制详细介绍(php调用变量的符号)

编辑:rootadmin

推荐整理分享php 变量引用与变量销毁机制详细介绍(php调用变量的符号),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php调用变量的符号,php引用赋值和变量赋值的区别,php &引用,php引用赋值和变量赋值的区别,php变量引用赋值,php变量引用赋值,php调用变量,php调用变量,内容如对您有帮助,希望把文章链接给更多的朋友!

php 变量引用与变量销毁机制

在php中,符号”&”表示引用。

1、看看不引用的情况是这样子:

ps:在php中,使用”=”直接赋值,其实就是拷贝一份右边的变量给b,会生成一份内存空间,结果可能是同样的内容在内存中两份。在有些关于php性能方面提到,这样子会多占有内存空间。不过我接触中,大部分人没怎么注意,其实一般应用这样子用产生的显著差异并不明显。不会看到什么效果,其实我本人也没经常使用&进行引用,呵呵。只是我觉得,深入了解里面的实现原理,非常有必要。我喜欢关注原理性的东西。

2、使用符号&进行引用

使用引用,php引擎不会拷贝一份变量,其实就是将指针指向了$a在内存中的地址,$b中就是保存了这个指针。所以使用引用的时候,把$b的值改变,$a也会跟着改变

比如:

解释:$param前面带有引用,所以传入进来的参数并不会在内存中拷贝一份,而是直接对原来的内存空间进行引用。所以:如果里对使用符号&传入进来的变量值进行修改了,那么也会改变原来的内存空间中的值。

做个测验如下:

前面了解到php引擎的机制是:=会把右边的内容拷贝一份给予左边的变量。所以使用&就是将函数的结果不会进行拷贝一份,实际上我的理解是把指针给了左边的变量。

php 变量引用与变量销毁机制详细介绍(php调用变量的符号)

什么是指针,以前学c语言中的概念。我的理解是就是:指针,指针,指向针(指南针,呵呵)。把指针看成是一个内存的地址容易理解点,计算机就知道去内存什么位置找数据了吧。这是浅显的理解,深入的我不会,呵呵。

总结:使用引用是为了减少内存资源的占用。

php手册中对引用的解释如下:

在 PHP 中引用意味着用不同的名字访问同一个变量内容。这并不像 C 的指针,替代的是,引用是符号表别名。注意在 PHP 中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字。最接近的比喻是 Unix 的文件名和文件本身——变量名是目录条目,而变量内容则是文件本身。引用可以被看作是 Unix 文件系统中的 hardlink。

3、销毁变量的时候。并不会改变原来的值。

试验:$b = & $a;

既然改变$b的值,$a的值也跟着改变,假如把$b销毁掉(内存中不占用空间了,不是null,也不是值为””),$a的值是不是也会跟着被删掉呢?

其实国外有本php方面的书中专门提到了这个机制。2年前看的。不是很记得了。原则是就是删除变量的时候,会自动拷贝。其实这样子,就是为了避免把$b给删掉,造成把$a也给删掉的问题。

调用unset删除$b变量的时候,php引擎从变量符号表中发现:我要删除的变量$b原来是引用了变量$a,这不好删除啊,因为一删除导致$a变量也没了,所以就先把$a变量拷贝一份后在删除$b变量。

关于php符号表:其实我的理解是,运行中所有变量名称都记录在里面,php来维护,具体的数据当然是存储在内存中,php就是根据这个符号表去回收没有用到的变量空间的,释放内存空间)。去看看php的垃圾回收机制(释放不再使用的内存空间),就是根据符号表进行的。

例子

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

thinkPHP中验证码的简单实现方法 本文实例讲述了thinkPHP中验证码的简单实现方法。分享给大家供大家参考,具体如下:运行效果图如下:1.php端生成验证码函数publicfunctionverify(){//验证码

thinkPHP js文件中U方法不被解析问题的解决方法 本文实例分析了thinkPHPjs文件中U方法不被解析问题。分享给大家供大家参考,具体如下:我想在js文件中写ajax,写完发现异常,本以为是js文件中不支持a

thinkPHP中配置的读取与C方法详解 本文实例讲述了thinkPHP中配置的读取与C方法。分享给大家供大家参考,具体如下:1.项目公共配置Conf/config.php内容如下php/***项目公共配置*@package*@author**/

标签: php调用变量的符号

本文链接地址:https://www.jiuchutong.com/biancheng/297113.html 转载请保留说明!

上一篇:php 魔术常量详解及实例代码(php魔术常量有多少)

下一篇:thinkPHP中验证码的简单实现方法(thinkphp登录验证)

  • 核定征收个体户个人经营所得税税率
  • 小微企业印花税怎么算
  • 上交个人所得税分录
  • 股权转让涉及法律
  • 合伙企业分配利润如何纳税
  • 银行对账单放前面还是放后面
  • 金蝶余额调节表怎么看当月的
  • 计提工资和实际发放工资必须一致吗
  • 企业所得税资产总额怎么填写
  • 企业资金运动包括哪几个环节
  • 建筑企业收到预售款时需要缴纳增值税吗
  • 企业清算需要什么
  • 五险一金可以在手机上交吗
  • 房产税没交会怎么样
  • 房地产开发企业土地增值税清算
  • 已经确认收入的售出商品发生销售退回时
  • 建筑业如何开票
  • 个人遗失的定义
  • 专票打印的时候密码区压线了能用吗
  • 企业所得税预缴可以不交吗
  • 投资理财产品的优势和劣势
  • 出售固定资产要交哪些税
  • 普通发票开票人为管理员是否可以报销?
  • 开个体户需要什么资料
  • 2021年新疆果业灰枣销售情况
  • 适用差额征税的小规模纳税人有哪些
  • 一般纳税人出售不动产增值税税率是多少
  • 报销差旅费抵扣进项税分录
  • 售后服务领用材料分录
  • windows defender隔离区
  • 购入空调
  • 房地产企业人防工程计入什么科目
  • xp系统为什么电脑不能用
  • 子公司代总公司付款
  • 冲减预付账款会计分录
  • 退回多缴的所得税怎么算
  • 缴纳住房公积金现金流量项目填什么
  • 兼职老师工资怎么扣税
  • 工会经费免征三年的文件山东
  • 考到二本
  • span标签中的字符串怎么获取
  • 命令执行语句
  • 企业计提的医疗保险属于企业设定提存计划的内容
  • 个体户发票没有开户行和账号行吗
  • 企业购进专门用于研发的生产设备
  • 帝国cms导入模板后怎样调用
  • hadoop集群状态
  • 季度利润是负数怎么办
  • 买一赠一税务局答复
  • 出口退税转内销的损失
  • 结转完工产品成本的会计科目
  • 简易征收3%的征收率是什么意思
  • 税款所属期止
  • 融资租赁各方
  • 个人抬头的发票可以入账吗
  • 贸易公司委托加工费怎么入账
  • 应交税费已交税金是什么意思
  • 投资公司如何运作
  • 淘宝商城的收入来源
  • 企业被列入经营异常名录可以注销吗
  • 违约方缴纳的履约金
  • 收到的业务赔偿如何入账
  • 管理不善存货盘亏计入什么科目
  • 本月没有认证的进项税怎么做分录
  • 小规模公司房租发票税率是多少
  • 企业购买黄金如何入账
  • mysql密码忘了怎么办?
  • linux find -perm 详解
  • Winaw32.exe - Winaw32是什么进程
  • winxp共享打印机win11
  • win10语音识别怎么打开
  • linux svn管理工具
  • ubuntu 重启xorg
  • 什么是血糖
  • Jquery Ajax Error 调试错误的技巧
  • 九九乘法表vb
  • 安卓手机微信取消窗口化
  • python科学绘图
  • Android: netd中DnsProxyListener的简单介绍
  • 青春逐梦税务蓝
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设