最新公告
  • 欢迎您光临波比源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • PHP Global变量定义一些用法详解

    php对global变量的解析是:Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。

    例代码如下:

    1. <?php  
    2. $a = 1;  
    3. $b = 2;  
    4. function Sum()  
    5. {  
    6. global $a$b//在里面声明为全局变量  
    7. $b = $a + $b;  
    8. }  
    9. Sum();  
    10. echo $b;  
    11. ?> 
    12. 结果: 3  

    如果没有全局变量global在方法内是不能获得$a,$b值的,所以在方法里面想用外面的变量就需要先声明这个变量为全局变量,这样就可以使用了.

    总结:在函数体内定义的PHP Global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,$glpbal $a; $a=123; function f() { echo $a; //错误, }

    再看看下面一例,代码如下:

    1. function f()  
    2. {  
    3. global $a;  
    4. $a=123;  
    5. }  
    6. f();  
    7. echo $a//正确,可以使用 

    在用户自定义函数中,一个局部函数范围将被引入,任何用于函数内部的变量按缺省情况将被限制在局部函数范围内(包括include 和 require 导入的文件内的变量)!

    解释:A.php文件的内Test_Global是定义好的第三方函数,该函数用include导入了B.php文件内的$a的global全局变量,所以$a被限制在Test_Global局部函数范围内,所以B.php文件内的$a的作用范围都在Test_Global内,而不是作用了整个A.php内….

    解决方案:

    1.冲出局部函数A.php 文件,代码如下:

    1. <?php 
    2. function Test_Global() 
    3. {   
    4.     Test();   
    5. }   
    6. include 'B.php';   //将include 从局部Test_Global函数中移出 
    7. $a = 0 ; 
    8. Test_Global(); 
    9. echo $a
    10. ?> 

    B.php 文件

    1. <?php 
    2. function Test() 
    3.     global $a
    4.     $a =1; 
    5. ?> 

    2.优秀的访问器,A.php 文件,代码如下:

    1. <?php 
    2. include 'B.php';  
    3. $a =0; 
    4. Set_Global($a); 
    5. echo $a
    6. ?>  

    B.php 文件

    1. <?php 
    2. function Set_Global(&$var
    3.     $var=1; 
    4. ?> 

    再来看看$GLOBALS[],代码如下:

    1. $var1 = 1;   
    2. $var2 = 2;   
    3. function test1(){   
    4.      $GLOBALS['var2'] = &$GLOBALS['var1'];   
    5. }   
    6. test1();   
    7. echo $var2;  //1 
    8. $var3 = 1;   
    9. $var4 = 2;   
    10. function test2(){   
    11.      global $var3,$var4;   
    12.      $var4 = &$var3;   
    13. }   
    14. test2();   
    15. echo $var4

    2.为什么$var2的打印结果是1,而$var4的打印结果为2呢?其实就是因为$var3的引用指向了$var4的引用地址。$var4的实际值并没有改变。官方的解释是:$GLOBALS['var']是外部的全局变量本身,global $var是外部$var的同名引用或者指针。

    也许这个例子还不是很清晰,我再引入一个例子,代码如下:

    1. $var1 = 1;   
    2. function test1(){   
    3.      unset($GLOBALS['var1']);   
    4. }   
    5. test1();   
    6. var_dump($var1);   //NULL 
    7. $var2 = 1;   
    8. function test2(){   
    9.     global  $var2;   
    10.      unset($var2);   
    11. }   
    12. test2();  
    13. echo $var2;  

    1 $var1的值被删除,而$var2的值还存在,这就证明,$var2只是别名引用,本身的值没有受到任何的改变,也就是说global $var其实就是$var = &$GLOBALS['var'],调用外部变量的一个别名而已!

    波比源码 – 精品源码模版分享 | www.bobi11.com
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

    波比源码 » PHP Global变量定义一些用法详解

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    波比源码
    一个高级程序员模板开发平台
    升级波友尊享更多特权立即升级