background image

复制代码

 代码如下:

<?PHP 
function test_global() 

// 大多数的预定义变量并不 "super",它们需要用 'global' 关键字来使它们在函数的本地区域
中有效。

 

global $HTTP_POST_VARS;echo $HTTP_POST_VARS['name'];// Superglobals  在任何范围内
都有效,它们并不需要

 'global' 声明。Superglobals 是在 PHP 4.1.0 引入的。 

echo $_POST['name']; 

?> 

global 也就是说在一个文件里 只要你声明为 global $db 那么在声明的下面 你就可以引用这

$db 了。 

4.原来以为 global 和$GLOBALS 除了写法不一样以为,其他都一样,可是在实际应用中发现,2
者的区别还是很大的

先看下面的例子

复制代码

 代码如下:

<?php 
// 例子 1 
function test_global() { 
global $var1, $var2; 
$var2 =& $var1; 

function test_globals() { 
$GLOBALS['var3'] =& $GLOBALS['var1']; 

$var1 = 5; 
$var2 = $var3 = 0; 
test_global(); 
print $var2 ."\n"; 
test_globals(); 
print $var3 ."\n"; 
?> 

复制代码

 

执行结果为



怎么会这样呢

?不应该是 2 个 5 吗?怎么会出现 1 个 0 和 1 个 5 呢? 

,我们保留以上问题,深入分析$GLOBALS 和 global 的原理! 

我们都知道变量其实是相应物理内存在代码中的

"代号",假设我们上面声明的 3 个变量分配