文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php中函数引用传递和返回的示例分析

2023-06-14 09:56

关注

小编给大家分享一下php中函数引用传递和返回的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

php的引用(就是在变量或者函数、对象等前面加上&符号)

在PHP 中引用的意思是:不同的名字访问同一个变量内容。
与C语言中的指针是有差别的.C语言中的指针里面存储的是变量的内容,在内存中存放的地址。

1.变量的引用

PHP 的引用允许你用两个变量来指向同一个内容

<?php    $a = 'abc';    $b = &$a;    var_dump($a,$b);//均为'abc'    $b = 123;    var_dump($a,$b);//均为123

2.函数的引用传递(传址调用)

<?php    function test(&$a){        $a = $a + 100;    }    $b = 1;    test($b);    var_dump($b);//101

这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值 就可以改变$b的值

注意:

上面的“ test($b); ” 中的$b前面不要加 & 符号,但是在函数“call_user_func_array”中,若要引用传参,就得需要 & 符号

<?php    function test(&$a){        $a = $a + 10;    }    $b = 1;    call_user_func_array('test',array(&$b));    var_dump($b);//11

3.函数的引用返回

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();得到的其实不是函数的引用返回,这跟普通的函数调用没有区别。$a=test()方式调用函数,只是将函数的值赋给$a而已,而$a做任何改变都不会影响到函数中的$b而通过$a=&test()方式调用函数呢, 他的作用是将return $b中的$b变量的内存地址与$a变量的内存地址指向了同一个地方。

这里是为了让大家理解函数的引用返回才使用静态变量的,其实函数的引用返回多用在对象中 :

class talker{private $data = 'Hi';    public function &get(){        return $this->data;    }    public function out(){        echo $this->data;    }}$aa = new talker();$d = &$aa->get();$aa->out();$d = 'How';$aa->out();$d = 'Are';$aa->out();$d = 'You';$aa->out(); //输出为HiHowAreYou

以上是“php中函数引用传递和返回的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯