Heim > Backend-Entwicklung > PHP-Tutorial > PHP基础笔记函数global变量_PHP教程

PHP基础笔记函数global变量_PHP教程

WBOY
Freigeben: 2016-07-13 10:50:27
Original
1009 Leute haben es durchsucht

global在php是全局变量了,这个global只是页面全局变量,如函数之外的变量我们可以在函数中直接使用global申明就可以获取变量的值了。

 代码如下 复制代码

$a=12;


function fn()
{
   global $a;//使用外层$a变量,不使用这个方法$a为局部变量
  $a+=12;
}

echo '$a='.$a//输出结果

?>

输出的结果:$a=24


总结:在函数体内定义的global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,

 代码如下 复制代码

 $glpbal $a;
 $a=123;

function f()
{
  echo $a;   //错误,
}

//再看看下面一例

 function f()
{
   global $a;
   $a=123;
}

f();
echo $a;  //正确,可以使用

上面的实例只是基本的global全局变量知识,下面我们看看复杂点的:

 代码如下 复制代码

//A.php 文件

function Test_Global()
{
    include 'B.php';
    Test();
}

$a = 0 ;
Test_Global();
echo $a;
?>

//B.php 文件

function Test()
{
   global $a;//申明函数体Sum内使用的$a变量为global全局变量
   $a =1;
}
?>

为什么输出的却是0?!!

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

解决方案:

1. 冲出局部函数

 代码如下 复制代码

//A.php 文件

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

//B.php 文件

function Test()
{
    global $a;
    $a =1;
}
?>

global问题解析:

question:我在config.inc.php中定义了一些变量($a),在别的文件中函数外部 include("config.inc.php"),函数内部需要使用这些变量$a,如果没有声明的话,echo $a是打印不出来任何东西的。因此声明global $a,但是有很多函数和很多变量,总不能不断重复的这样声明吧?有什么好的解决办法,请指点。
answer1:先在config.inc.php里定义常量:define(常量名,常量值)
再在其他需要用到的地方require 'config.inc.php',
然后就能在这个文件里直接使用这个常量了。
answer2:我也有个办法,就是定义数组,如$x[a],$x,那样就只要声明global $x一个了。
answer3:我试了你的这个方法,不行啊。
answer4:改你的php.ini文件。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/632627.htmlTechArticleglobal在php是全局变量了,这个global只是页面全局变量,如函数之外的变量我们可以在函数中直接使用global申明就可以获取变量的值了。 例...
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage