Rumah  >  Artikel  >  关于PHP5和PHP7版本下global变量机制有哪些变化?(代码实测)

关于PHP5和PHP7版本下global变量机制有哪些变化?(代码实测)

藏色散人
藏色散人asal
2018-08-09 12:14:437018semak imbas

对于php程序员来说,随着php不同版本对于部分函数变量机制的更新改进,往往会让大家因在不同版本下使用同一变量而出现不同结果时而产生疑惑。那么本篇文章主要给大家详细解释下,为什么在PHP5和PHP7版本下,使用同一global变量时会出现不同结果的问题?下面给大家举一个简单易懂的例子。

比如现有一个exl.php的页面运算代码如下:

ba95548290b40909b70c786c52305b1.png

我们在本地php5版本环境下运行出来的结果是5,如下截图:

95d28e76f01d1815bd326b89bfa6af9.png

那么我们在php7版本环境下运行的结果是3,如下截图:

1210401eebb5e9c87bf67e0c73525bf.png

那么之所以会出现不同运算结果,其实是因为在最新的php7版本中,PHPglobal变量处理机制进行了修改,此版本下global关键字现在只能引用简单变量。所以当我们在本地php5版本环境下运算时,输出的$y的值就是$x+$y=5,此时的global就相当于全局变量使用。而在php7环境下,输出的$y的值却是$y=3,此时global变量只能直接引用简单变量$y。

那么通过以上的示例代码解释,希望本篇文章关于php中global变量在不同版本下运算产生不同结果的问题,对大家遇到相关问题时有所帮助,也希望大家通过此篇文章对不同版本下php global用法有所理解。

【相关文章推荐】

为什么global变量会出现无效或者错误的现象呢?

global与$GLOBAL['']的一些不同理解

PHP源码分析之Global关键字

php中global与$GLOBALS


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn