PHP Global

本文内容最终以PHP: 变量范围 – Manual中的Global部分为准。

博主很粗心的研究了一下文档就来写这篇文章了,只是做个笔记,并且没有做测试,所有内容都是我猜的[不怕被我误导的话就看下去吧],有错误请指出,没什么问题的话也提醒我一下,我来给文章mark下可信。
首先说一下我总结出来的Global使用规则先。
1.在函数里使用在函数外定义的变量在变量前加上至少一次Global来访问。
2.要让函数里的变量可以被外部访问,就要在函数里定义的变量之前加上Global,然后可以在外部直接使用,如果在其它函数里使用的话,参考1。

接下来是正文,如果上面的规则没看懂的话,下面会给出一些例子来帮助理解。


先说一下1,PHP的变量定义和其它语言有点不一样。拿C语言举个例子,C定义在函数外的变量都可以被同级的函数或函数的内部函数直接用变量名的形式调用,但是PHP不是这样,他需要在前面加个global,例:

没猜错的话应该会出现2。
但是如果像下面这么写

这个时候输出的应该还是1。
那么1里说的至少用一次global是什么意思呢,看了看文档我觉得是这个意思:

我猜结果是4,从这段代码里可以看出只有一个$a加了global,而且是第一个。因为至此就已经告诉PHP这个函数里用的所有叫$a的变量都是门外面那个,后面的就不用再加上全局变量标识了。
到这里1已经没啥好讲了,有疑问或错误请留言。

接下来开始2。
首先来看一段短代码:

这个时候没猜错的话结果应该是250,因为在函数里a被定义成了全局变量,让a可以在函数外访问而且函数结束以后a不会消失。
然后我觉得要在其它函数里用这些全局变量的话方法和1是一样的,给函数里的变量加一次global,如下:

这是输出的也应该是250。
本文完





如文中无特殊说明,本站均使用以下协议:知识共享许可协议
知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。

本博客使用Disqus评论系统,如果看不到评论框,请尝试爬墙。