php查询数据库给变量赋值(详解PHP变量传值赋值和引用赋值变量销毁)
类别:编程学习 浏览量:2511
时间:2022-04-02 16:55:33 php查询数据库给变量赋值
详解PHP变量传值赋值和引用赋值变量销毁本文实例为大家分享了php变量传值赋值和引用赋值变量销毁的具体代码,供大家参考,具体内容如下
|
<?php $a = 100; $b = 200; var_dump( $a , $b ); //int(100) int(200) ?> |
php中,上面的代码,变量是怎么存放的呢?
上面的代码变动下,将变量b赋值给变量a,会发生什么?
|
<?php $a = 100; $b = 200; $a = $b ; /*多了这个*/ var_dump( $a , $b ); //int(200) int(200) ?> |
问题来了,$a = $b,那么是将变量a的指针指向了变量b指针所指向的位置?还是变量a指向的位置的值变了?
引用赋值和上面传值赋值不同,引用赋值是两个变量指向一个地方,一旦这样,一改俱改。
怎么引用赋值呢?变量名前加&即可,
$a = &$b;
这样赋予变量a的就不仅仅是变量b的值,而是变量b的地址,变量a和变量b共同指向一个地址。
|
<?php $a = 100; $b = 200; $a = & $b ; var_dump( $a , $b ); //int(200) int(200) /*变量b引用赋值给变量a后,ab指向同一个地址,将会一改俱改,如下:*/ $a =500; var_dump( $a , $b ); //int(500) int(500) 一改俱改 $b = 700; var_dump( $a , $b ); //int(700) int(700) 一改俱改 ?> |
|
<?php /*理解下面的话*/ $a = 100; //变量a赋值int 100 ,100是基础数据类型,不是变量,是存在变量指向位置的 $a = $b ; //变量b的值 赋值 给变量a,变量a,b各有各的指向,执行之后,各是各的。 $a = & $b ; //变量b的值的地址 赋值给变量 a ,变量a,b共用一个地址哦!一改俱改! ?> |
|
<?php /* php中unset()是用来销毁变量的,但很多时候,unset()只把变量给销毁了, 内存中存放的该变量的值仍然没有销毁,也就是没能达到我们想要的释放内存的效果。 这里可以用 变量=null 的方法来释放其内存 unset也会释放内存的情况 1. 在变量值所占空间超过255字节长的时候,unset(变量)才会释放内存 2. 只有当指向该值的所有变量都被销毁后,地址才会被释放(比如$a,$b都指向该值,仅仅unset($a);是不释放的,$b还是正常存在的)(也要执行1的判断) */ $a = 200; $b = & $a ; unset( $a ); var_dump( $a , $b ); //null int(100) ?> |
上面的代码,执行到unset($a)时候,就是将变量a的指向断开,同时将变量a扔出花名册,从下图可以看出,对变量b是没有影响的。
但是,如果用$a = null;这种方式销毁变量时,将会有如下影响:
|
<?php $a = 100; $b = & $a ; $a = null; var_dump( $a , $b ); //null null ?> |
这种方式,释放了内存,但是共用一个地址的另一个变量也受到了影响。
看看这两种方式在数组上的应用:
|
<?php $aaa = array ( 'a' =>1, 'b' =>2 ); unset( $aaa [ 'a' ]); print_r( $aaa ); //array ( [b] => 2 ) ,用unset,数组中这一项不存在了 $bbb = array ( 'a' =>1, 'b' =>2 ); $bbb [ 'a' ] = null; print_r( $bbb ); //array ( [a] => [b] => 2 ) ,用 = null,数组中这一项还存在,只是为空了 ?> |
以上所述是小编给大家介绍的php变量传值赋值和引用赋值变量销毁详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
您可能感兴趣
- phpstudy默认不支持64位php的解决方法(phpstudy默认不支持64位php的解决方法)
- php项目开发实例(php项目中类的自动加载实例讲解)
- 本地phpstudy搭建网站教程学习(phpstudy搭建本地网站服务器图文教程)
- php面向对象怎么用(PHP面向对象程序设计之对象克隆clone和魔术方法__clone用法分析)
- php编程输出菱形(php输出反斜杠的实例方法)
- php常用执行函数(PHP自动载入类文件函数__autoload的使用方法)
- php中钩子的理解与实例教程(php中钩子hook的原理与简单应用demo示例)
- 安装phpstudy注意哪些问题(phpstudy怎么卸载?phpstudy卸载图文教程)
- php如何复制数组(php5对象复制、clone、浅复制与深复制实例详解)
- php最好的探针(php探针不显示内存解决方法)
- phpweb添加自定义模板(php静态化页面 htaccess写法详解htaccess怎么写?)
- 如何解决php跨域问题(php简单检测404页面的方法示例)
- php去水印方法(PHP开发的文字水印,缩略图,图片水印实现类与用法示例)
- php array只能放一种类型的数据(浅谈PHP array_search 和 in_array 函数效率问题)
- thinkphp导入excel(Yii框架使用PHPExcel导出Excel文件的方法分析改进版)
- php日期和时间怎么设置(PHP实现时间日期友好显示实现代码)
- 粗盐是什么 粗盐的功效与作用(粗盐的功效与作用)
- 会 吃人 的客机 从天堂到地狱只需5分钟,图-104如何做到(会吃人的客机)
- 男人犯的错,为什么要女人来承担(为什么要女人来承担)
- 心理学 四个金蟾,哪个最招财 测你今生的运势有多棒(心理学四个金蟾)
- 吉善缘《聚宝金蟾》金蟾招财摆件 三足全铜蟾蜍客厅店铺开业礼品(吉善缘聚宝金蟾金蟾招财摆件)
- 招财化煞神兽,金蟾变了(招财化煞神兽金蟾变了)
热门推荐
- linuxgdb怎么设置前面的程序(详解Linux下调试器GDB的基本使用方法)
- isPrototypeOf和hasOwnProperty的区别
- php面向对象final怎么设置(PHP面向对象程序设计中的self、static、parent关键字用法分析)
- centosdocker镜像安装mysql(linux下利用Docker安装mysql的步骤)
- php里的fpm是什么(phpfpm的作用和用法)
- mysql索引的比较规则(MySQL的Flush-List和脏页的落盘机制)
- 云服务器如何进入(云服务器配置怎么看?)
- vs和sql安装顺序(VS2015安装之后加装Sql server2014详细步骤)
- 阿里云服务器防御(阿里云服务器攻击超过云盾防御阀值应该怎么办?)
- 数据库字段类型对应C#数据类型
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9