PHP中 global 与$globals的区别?

php中文网
发布: 2016-06-20 12:43:36
原创
914人浏览过

先贴上代码 这是 global

<?php     $var1=5;   $var2=10;function testglobal(){    global $var1,$var2;    $var2=&$var1;        //这里将$var1的地址传给$var2    echo $var1,'---',$var2;}    testglobal();    $var2=20;    echo "第二次输出",$var1,'---',$var2; ?>
登录后复制

在调用完这个testglobal之后 给$var1赋值  再打印 $var1 与$var2的值 
  输出的结果是
5---5第二次输出20---10
在函数内将 var1的地址赋给var2(我测试了一下在函数体内改变var1的值的话同样会改变var2的值)  但是调用完后再给var2赋值,不会改变var1的值,在global后修改var1的值会影响到函数体外的var1的值

这是$globals的代码
<?php           $var1=5;    $var2=10;    function test()    {      $globals['var1'] =&$globals['var2'];      $globals['var1'] = 20;        }    test();    $var1=30;    echo $var1,$var2; ?>
登录后复制

使用$globals 无论是在函数体内还是函数体外都会改变 var1 与var2的值

问题:
  1:global引用变量是不是属于传值引用,在引用变量后其实只是将变量的值传递进函数体?但我在global中修改var1的值一样会影响到函数体外的var1的值,这是为什么?
 2:global 与$globals 之间都有哪些区别?

    期待得到指点,第一次提问格式有些乱,我会改进的。
  

Studio Global
Studio Global

Studio Global AI 是一个内容生成工具,帮助用户客制化生成风格和内容,以合理价格提供无限生成,希望将 AI 带给全世界所有人。

Studio Global 103
查看详情 Studio Global


回复讨论(解决方案)

这个问题不必纠结吧?手册中已经有了明确的说明


global $var1,$var2; //$var1 和 $var2 是全局变量的引用
$var2=&$var1; //对 $var2 赋值 $var1 的引用,这就切断了 $var2 对 全局变量 $var2 的引用

这个问题不必纠结吧?手册中已经有了明确的说明


global $var1,$var2; //$var1 和 $var2 是全局变量的引用
$var2=&$var1; //对 $var2 赋值 $var1 的引用,这就切断了 $var2 对 全局变量 $var2 的引用


谢谢你,麻烦你了, 我去下一本手册看看。
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号