• 技术文章 >后端开发 >php教程

    【转】php函数摘引

    2016-06-13 13:02:42原创349
    【转】php函数引用

    转载自?hosserer

    最终编辑?hosserer

    ?

    一个形象的比喻:

    引用:你是我的影子,我穿什么衣服你也是什么衣服,你被unset了,我依然是我。

    传值:你是我某个时刻的一张照片,或者说你是一个独立的东西,我说你是苹果,你就是苹果,跟我没有关系了。

    以下为转载:

    ?

    php函数前面加&符号的意思是函数的引用返回,php函数前面加&符号有什么作用呢

    Php代码?

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

    $a=test();//这条语句会输出 $b的值 为1
    $a=5;
    $a=test();//这条语句会输出 $b的值 为2
    $a=&test();//这条语句会输出 $b的值 为3
    $a=5;
    $a=test();//这条语句会输出 $b的值 为6?
    下面解释下: 
    通过这种方式$a=test();得到的其实不是函数的引用返回,这跟普通的函数调用没有区别.

    至于原因: 这是PHP的规定
    php规定通过$a=&test(); 方式得到的才是函数的引用返回.

    至于什么是引用返回呢(PHP手册上说:引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。)

    用上面的例子来解释就是
    $a=test()方式调用函数,只是将函数的值赋给$a而已, 而$a做任何改变 都不会影响到函数中的$b.
    而通过$a=&test()方式调用函数呢, 他的作用是将return $b中的 $b变量的内存地址与$a变量的内存地址,
    指向了同一个地方. 即产生了相当于这样的效果($a=&b;) 所以改变$a的值,也同时改变了$b 的值 ,所以在执行了:
    $a=&test(); $a=5; 以后,$b的值变为了5 ......


    php变量前面加&符号是什么意思

    先看一个示例

    Php代码?
    $foo = 321;???
    $bar = &$foo;????
    $bar = 123;???
    print $foo;

    $foo = 321;
    $bar = &$foo;?
    $bar = 123;
    print $foo;那么输出的结果将会是什么呢

    Php代码?
    123????

    为什么会这样呢?

    改动新的变量将影响到原始变量,这种赋值操作更加快速
    注意:只有命名变量才可以传地址赋值
    就是说,改变了$bar的值,也就改变了$foo的值了

    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:test amp php foo bar

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 基于PHP的简单采集数据入库程序_PHP• PHP中读取文件的8种方法和代码实例_PHP• ThinkPHP之import方法实例详解_PHP• PHP实现的连贯操作、链式操作实例_PHP• PHP5中Cookie与 Session使用详解_PHP
    1/1

    PHP中文网