PHP几个常见问题

1、变量引用

说明:变量a和变量a的引用,从底层来看实际上就是同一份内存空间存放的变量,他们的关系实际就是小明有一个名字叫小明,还有一个英文名字叫Tom,你叫小明和Tom,都只有一个人答复你。

<?php
function add(&$a){
  $a+=100;
}

$a = 10;
$b = &$a;

echo $a;
echo "\n";
echo $b;
echo "\n";

add($a);
echo $a;
echo "\n";
echo $b;
echo "\n";

?>

运行结果:
10
10
110
110

2、使用unset释放变量的引用

说明:unset释放一个变量a的引用只是解开了名字之间的绑定关系,并没有释放变量a。

<?php
  $a = 10;
  $b = &$a;
  unset($b);
  echo $a;
?>

运行结果:
10

3、引用的返回

说明:$a=&test() 这语句说的是将test函数返回值得引用赋给$a,下面的例子中$b具有static属性,从c语言角度来讲这是放在全局(静态)初始化区,程序退出$b才会释放,执行$a=&test()相当于$a = &$b;

<?php

function &test() {
    static $b=0;//申明一个静态变量
    $b=$b+1;
    echo $b;
    return $b;
}

echo $b;
$a=test();//这条语句会输出 $b的值 为1
$a=5;
$a=test();//这条语句会输出 $b的值 为2

$a=&test();//这条语句会输出 $b的值 为3
$a=5;
$a=test();//这条语句会输出 $b的值 为6

?>

 

转载于:https://my.oschina.net/yaomianwei/blog/1536172

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值