Home > Backend Development > PHP Tutorial > 关于全局变量global懂得和疑惑

关于全局变量global懂得和疑惑

WBOY
Release: 2016-06-13 12:59:49
Original
869 people have browsed it

关于全局变量global理解和疑惑?
php刚刚起步,对global产生了疑问,然后自己试验了下:

function test()<br />
{<br />
	global $a;<br />
	$a=10;<br />
	global $b;<br />
    $b=$a+10;   <br />
}<br />
test();<br />
echo $a."<br>";<br />
echo $b."<br>";<br />
?>
Copy after login

恩,效果很好,果然输出10 20.
然后我又这样写了下:
<?php<br />
function test()<br />
{<br />
    $a=10;<br />
    global $a;<br />
    $b=$a+10;<br />
    global $b;   <br />
}<br />
test();<br />
echo $a."<br>";<br />
echo $b."<br>";<br />
?>
Copy after login

这次就蛋疼了,为什么不报错也不提示,而是输出的是空白呢?
既然上全局变量,整个php文件都能用吧,我又进行了下面的测试:
global $c;<br />
$c=7;<br />
function test()<br />
{<br />
    echo $c;   <br />
}<br />
test();<br />
Copy after login

然后提示,未定义变量.
是不是,定义了全局变量也不能在函数里面用?要想将值传给函数,只能通过参数的方式呢?
------解决方案--------------------
声明在前,使用在后
这是普遍的原则

global 是在函数中声明全局变量用的
------解决方案--------------------
先定义变量 $a='aaa';

函数中
function test()
{
global $a;
//使用$a;
}
------解决方案--------------------
第一个例子,你是先定义全局变量,然后使用全局变量。
第二个例子,你是先定义本地变量,然后再定义全局变量。但是你赋值的时候是使用本地变量,所以出现了你所见到的问题。
------解决方案--------------------
<?php<br />
function test()<br />
{<br />
    $a=10;      // 这个是局部变量以下同样<br />
    global $a;  // 这里声明了全局变量,以后出现的$a就是全局变量$a了<br />
                   // 在函数中使用全局变量都需要这样先声明一下否则默认为局部变量<br />
    $b=$a+10;<br />
    global $b;   <br />
}
Copy after login

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template