安静
PHP技术博客

141008 PHP全局变量global详解

简单的代码:为什么输出的却是0?!!

在用户自定义函数中,一个局部函数范围将被引入。任何用于函数内部的变量按缺省情况将被限制在局部函数范围内(包括include 和 require 导入的文件内的变量)!
解释:A.php文件的内Test_Global是定义好的第三方函数,该函数用include导入了B.php文件内的$a的global全局变量,所以$a被限制在Test_Global局部函数范围内,所以B.php文件内的$a的作用范围都在Test_Global内,而不是作用了整个A.php内….

解决方案:

冲出局部函数

	 //A.php 文件
	 
	<?php
	function Test_Global()
	{  
	Test();  
	}  
	include 'B.php';   //将include 从局部Test_Global函数中移出
	$a = 0 ;
	Test_Global();
	echo $a;
	?> 
	 
	//B.php 文件
	 
	<?php
	function Test()
	{
	 global $a;
	 $a =1;
	}
	 ?>

优秀的访问器

        //A.php 文件
	<?php
	include 'B.php'; 
	$a =0;
	Set_Global($a);
	echo $a;
	?> 
	 
	//B.php 文件
	 
	<?php
	function Set_Global(&$var)
	{
	   $var=1;
	}
	 ?>
赞(0) 打赏
未经允许不得转载:AJ's Blog » 141008 PHP全局变量global详解
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏