http://run.php.cn/在线PHP程序运行结果不正确
风中咏歌
风中咏歌 2020-03-21 17:10:28
[PHP讨论组]
	<?php
	$x = 5;
	$y = 10;

	function myTest() {
		$GLOBALS[ 'y' ] = $GLOBALS[ 'x' ] + $GLOBALS[ 'y' ];
	}

	myTest();
	echo $y; // 应该输出 15 ,但在run.php.cn输出为10
	?>

风中咏歌
风中咏歌

全部回复(4)
风中咏歌

下面的在线PHP编辑器的PHP都是PHP7以上的版本,运行结果都是15

c.runoob.com网.jpg

c.runoob.com网运行结果.jpg

it1352.com网.jpg

it1352.com网运行结果.jpg

tool.lu网.jpg

tool.lu网运行结果.jpg

风中咏歌

对于这个原因,我还是持怀疑态度,这样一来,global就要看php的版本就会有不同的运算结果,这样兼容性就有点差了。

风中咏歌

找到原因了,见本网站链接 https://www.php.cn/php/php-variables.html 注:上述代码在PHP5版本下输出值是15;但是PHP中文网在线实例环境是PHP7版本的,所以输出值应为10。因为在最新的php7版本中,PHPglobal变量处理机制进行了修改,此版本下global关键字只能引用简单变量。详情区别介绍可查看此文: 关于PHP5和PHP7版本下global变量机制有哪些变化?(代码实测)

老洪

$GLOBAL['x'] 表示的是,对数组$GLOBAL取出键名为'x'的值。问题你这段代码,这个数组哪里来的?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

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