上一篇:laravel学习遇到的各种问题(2019-02-24 23:02:36)
文章大纲

php系列:global和$GLOBALS的区别

2019-02-25 12:27:52
<p>global关键字和$GLOBALS的区别:</p><p>global的用途就是:在局部作用域里引入全局作用域里的变量,以使用全局变量的值。示例如下:</p><pre>$a = 3;<br>$b = 4;<br>function sum(){<br> global $a,$b;<br> return $a + $b;<br>}<br>echo sum();<br></pre><p>如果屏蔽掉global这一行,就会报警告错误:函数里a,b变量未声明。函数里的a,b变量就无法使用函数外的a,b这两个变量的值。</p><p><br></p><p>$GLOBALS是php自带的全局作用域关键字,<span class="type"><span class="type 数组">可以替代global的用法。</span></span></p><p><span class="type"><span class="type 数组">用</span></span><span class="type"><span class="type 数组">$GLOBALS声明的变量,是超级全局(superglobal),即在脚本的所有作用域中都是可使用的,不再受函数的局部作用域对变量的限制。示例如下:</span></span></p><pre><span class="type"><span class="type 数组">$GLOBALS['hello'] = 'hello world';<br>function sayhi(){<br> $GLOBALS['hello'] = "good morning";<br>}<br>sayhi();<br>echo $GLOBALS['hello']; //结果显示good morning<br></span></span></pre><p><span class="type"><span class="type 数组"><br></span></span></p><pre><span class="type"><span class="type 数组">&lt;?php<br>function test() {<br> $foo = "local variable";<br><br> echo '$foo in global scope: ' . $GLOBALS["foo"] . "\n";<br> echo '$foo in current scope: ' . $foo . "\n";<br>}<br><br>$foo = "Example content";<br>test();<br>?&gt;<br><br></span></span></pre><p><span class="type"><span class="type 数组">以上执行结果:<br></span></span></p><pre><span class="type"><span class="type 数组">$foo in global scope: Example content<br>$foo in current scope: local variable<br></span></span></pre><p><span class="type"><span class="type 数组"><br></span></span></p><p>总结:</p><blockquote><p>global的用途:在局部作用域里引入全局作用域里的变量,以使用全局变量的值。</p><p>$GLOBALS的用途:与global的用途一致,这种数组变量畅通无阻,无作用域限制。<br></p></blockquote>
上一篇:laravel学习遇到的各种问题(2019-02-24 23:02:36)
我要评论
评论列表