• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 详解php中函数的引用传递和返回 (附代码)

详解php中函数的引用传递和返回 (附代码)

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了php函数引用,函数传递和返回等相关知识,希望对您有所帮助

本篇文章带大家了解一下php的引用,详细介绍一下函数的引用传递和引用返回。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。


详解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



分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 详解php中函数的引用传递和返回 (附代码)

相关文章

  • Photoshop绘制超强质感立体按钮
  • CDR绘制红色枫叶背景插画
  • JS去除腾讯爱奇艺优酷视频右上角LOGO
  • 给dedecms软件列表页添加下载次数的方法
  • 一文详解Laravel如何安装inertia vue3的版本
  • dedecms5.7技术:“更新数据库archives表时出错,请检查
  • Nodejs中如何定义全局变量
  • CorelDraw交互式调和工具制作卡通彩虹
  • DEDE内容页调用栏目的SEO标题、描述、关键字的方
  • 浅析uni-app中怎么提交form表单?(代码解析)

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 最新消息!WordPress 5.8开始将不再支持IE11浏览器
    • CSS3怎么实现动画结束不消失效果
    • 如何修改织梦cms的幻灯片调用为全站调用
    • Javascript如何将时间字符串转化为时间
    • java中定义数组的格式有哪几种
    • 帝国cms更换php7环境后台空白
    • 第三方下载苹果CMSV10系统的请注意后门WebShell
    • Photoshop鼠绘质感霸天虎机器人界面
    • Javascript中window.close如何不提示弹窗
    • Photoshop设计卡通风格的云彩效果

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有