PHP引用(&)案例介绍

122 阅读2分钟

变量引用


案例:

<?php

//变量单独引用

$test = "a string!\n";

$quote = &$test;

 

echo $test; //a string!

echo $quote;//a string!

 

$quote = "exchange!\n";

echo $test; //exchange!

echo $quote;//exchange!

 

unset($quote);

echo $test; //exchange!

 

//函数传参引用

$num = 10;

echo $num."\n";

test($num);

echo $num."\n";

 

function test( &$num) {

    $num += 10;

}

结论

PHP 的变量引用相当于不同的变量都指向同一个内容。也会操作这一份内容,如果删除其中一个引用,另外一个引用不受影响,相当与删除的变量不在指向同一个内容,但是不能为常量。(相当于一个人有好多个名字,及时去掉一个名字,也不会影响人这个实体)

函数引用返回

案例1:

<?php

 

$t = test(); // 1

var_dump($t); // int(1)

$t = 20; $t = test(); //2

var_dump($t); //int(2)

$t = &test(); //3

var_dump($t) ; //int(3)

$t = 20; $t = test(); //21

var_dump($t); //int(21)

 

function &test() {

    static $test = 0;

    $test += 1;

    echo $test."\n";

     

    return $test;   

}

案例2:

?php

 

$t = test();

 

function &test() {

    static $test = 0;

    $test += 1;

    echo $test."\n";

}

 

 

$ php test.php 

1

PHP Notice:  Only variable references should be returned by reference in /home/q/www/zt.dujia.qunar.com/test.php on line 9

结论:

相当于 $t = &test; 说白了还是 变量之间的引用。

对象引用

案例:

<?php

class a{

    var $abc="ABC";

} 

$b=new a; 

$c=$b; 

echo $b->abc;//这里输出ABC 

echo $c->abc;//这里输出ABC

 $b->abc="DEF"; 

echo $c->abc;//这里输出DEF

?>

引用,其实就是一个变量空间,赋予了多个操作名称,这些操作名称,都指向同一个操作空间,其中一个操作名称对其空间操作,其他操作名称得到的结果也会变化。

引用的作用:

一般来说,每次声明一个变量,其就会占用一定的空间。

函数传参的方便,直接修改原有空间的内容,同时也减少中间变量的空间的开销。


更多内容请访问

怎么从一名码农成为架构师的必看知识点:目录大全(持续更新)50W年薪挑战!​

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的官方群点击此处