QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

切换风格 注册 找回密码

php开发-PHP教程网


发表于 2019-3-22 17:00:03 | 显示全部楼层 |阅读模式
  1. <?php
  2.      $a = 100;
  3.      $b = 200;
  4.      var_dump($a,$b); //int(100) int(200)
  5. ?>
复制代码
php中,上面的代码,变量是怎么存放的呢?

                               
登录/注册后可看大图
上面的代码变动下,将变量b赋值给变量a,会发生什么?
  1. <?php
  2.     $a = 100;
  3.     $b = 200;
  4.     $a = $b;/*多了这个*/
  5.     var_dump($a,$b); //int(200) int(200)
  6. ?>
复制代码
问题来了,$a = $b,那么是将变量a的指针指向了变量b指针所指向的位置?还是变量a指向的位置的值变了?

                               
登录/注册后可看大图
引用赋值和上面传值赋值不同,引用赋值是两个变量指向一个地方,一旦这样,一改俱改。
怎么引用赋值呢?变量名前加&即可,
$a = &$b;
这样赋予变量a的就不仅仅是变量b的值,而是变量b的地址,变量a和变量b共同指向一个地址。

  1. <?php
  2.     $a = 100;
  3.     $b = 200;
  4.     $a = &$b;
  5.     var_dump($a,$b); //int(200) int(200)
  6.     /*变量b引用赋值给变量a后,ab指向同一个地址,将会一改俱改,如下:*/
  7.     $a =500;
  8.     var_dump($a,$b);//int(500) int(500) 一改俱改
  9.     $b = 700;
  10.     var_dump($a,$b);//int(700) int(700)    一改俱改
  11. ?>
复制代码


                               
登录/注册后可看大图


  1. <?php
  2. /*理解下面的话*/

  3. $a = 100;
  4. //变量a赋值int 100 ,100是基础数据类型,不是变量,是存在变量指向位置的

  5. $a = $b;
  6. //变量b的值 赋值 给变量a,变量a,b各有各的指向,执行之后,各是各的。

  7. $a = &$b;
  8. //变量b的值的地址 赋值给变量 a ,变量a,b共用一个地址哦!一改俱改!


  9. ?>
复制代码

发表于 2019-3-22 17:00:36 | 显示全部楼层
看起来不错
发表于 2019-3-23 01:04:04 | 显示全部楼层
沙发???
发表于 2019-3-23 18:55:14 | 显示全部楼层
珍爱生命,果断回帖。
发表于 2019-3-24 10:02:11 | 显示全部楼层
无论是不是沙发都得回复下
发表于 2019-3-24 10:39:13 | 显示全部楼层
一直在看
发表于 2019-3-24 23:54:24 | 显示全部楼层
为保住菊花,这个一定得回复!

新浪微博达人勋

发表于 2019-3-25 03:28:40 | 显示全部楼层
向楼主学习
发表于 2019-3-25 09:33:07 | 显示全部楼层
路过 帮顶 嘿嘿
发表于 2019-3-26 14:17:11 | 显示全部楼层
支持,赞一个
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆



Archiver|  

662p开源网. Powered by Niuzen

© 2001-2014 Niuzen Inc.

返回顶部