当前位置:首页 > PHP教程 > php高级应用 > 列表

深入理解PHP中的global

发布:smiling 来源: PHP粉丝网  添加日期:2021-04-03 13:08:50 浏览: 评论:0 

这篇文章主要介绍了深入理解PHP中的global,用简明的语言描述global的实现原理和作用,并给出了代码示例,需要的朋友可以参考下。

一、实现原理

在PHP的函数中,global语法是比较常见的,大家一定都知道一旦在函数中global了某个外部变量后,这个变量就可以在这个函数中使用了,但是也有不少网友不知道这是一个什么实现原理。现在上一个例子,大家一看就知道了:

  1. $globalStr = '.com'
  2. function globalTest(){ 
  3.  
  4.  global $globalStr
  5.  
  6.  $globalStr = 'phpfensi'.$globalStr
  7.  
  8.  unset($globalStr); 
  9.  
  10.  
  11. globalTest(); 
  12.  
  13. echo $globalStr//输入: phpfensi.com 

从这个例子看出global了一个变量就等于传递了一个引用进来。这样理解的话,下面的代码输出结果就不难理解了。

二、php中global的作用,代码如下:

global $var1,$var2;

就是外部变量的同名引用,变量本身的作用范围仍然在函数体内。改变这些变量的值,外部的同名变量自然也改变。但一旦用了&,那么变量将不再是同名引用。

代码如下:

  1. <?php 
  2. $var1 = 1; 
  3. $var2 = 2; 
  4. function test() 
  5.     global $var1,$var2// 作用范围在函数体内 
  6.     $var1 = 3; 
  7. test(); 
  8. echo $var1
  9. ?> 

结果是 3,因为是同名引用,代码如下:

  1. <? 
  2. $var1 = 1; 
  3. $var2 = 2; 
  4. function test() 
  5.     global $var1,$var2
  6.     $var1 = &var2; 
  7. test(); 
  8. echo $var1 
  9. ?> 

结果是1。因为在函数内的$var1经过赋值后与$var2具有相同的引用了。进一步看下面的代码,代码如下:

  1. <?php  
  2. $var1 = 1;    
  3. $var2 = 2;    
  4. function test_global()    
  5. {    
  6.     global $var1,$var2;    
  7.     $var1=&$var2;    
  8.     $var1=7;    
  9. test_global();    
  10. echo $var1;    
  11. echo $var2
  12. ?> 

结果是1和7。因为在函数内的$var1与$var2具有相同的引用。因此改变了$var1的值,$var2的值夜作了改变。

Tags: global

分享到: