globalphp
‘壹’ php中全局变量global和$GLOBALS的区别分析
一、举例比较
例一:
复制代码 代码如下:
<?php
$var1 = 1;
function test(){
unset($GLOBALS['var1']);
}
test();
echo $var1;
?>
因为$var1被删除了,所以什么东西都没有打印。
例二:
复制代码 代码如下:
<?php
$var1 = 1;
function test(){
global $var1;
unset($var1);
}
test();
echo $var1;
?>
意外的打印了1。证明删除的只是别名引用,其本身的值没有受到任何的改变。
二、解释
global $var其实就是&$GLOBALS['var'],调用外部变量的一个别名而已。
上面代码中的$var1和$GLOBALS['var1']是指的同一变量,而不是两个不同的变量。
PHP的全局变量和C语言有一点点不同。在C语言中,全局变量在函数中主动生效,除非被局部变量笼罩。这可能引起一些问题,有些人可能漫不经心的转变一个全局变量。PHP中全局变量在函数中应用时必须用global申明为全局。
PHP的Global变量的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。
三、结论
1.$GLOBALS['var']是外部的全局变量本身
2.global $var是外部$var的同名引用或者指针。
‘贰’ 在php中global是什么意思
PHP关键字global如果用在function内部,则说明这个function内用的这个变量是全局的。例如
<?php
$var="hello";
function sample(){
global $var;
echo $var;
}
这样输出的就是hello
如果不加global关键字,则说明$var是函数内部的变量,则会输出空字符串
‘叁’ PHP Global变量定义当前页面的全局变量实现探讨
PHP
Global变量在实际应用中会发现许多问题需要我们不断的去完善处理。我们在这篇文章中就针对PHP
Global变量出现的问题给出了一些具体的解决办法。
1:PHP
Global变量的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件
复制代码
代码如下:
$a=123;
function
aa()
{
Global
$a;
//如果不把$a定义为global变量
,函数体内是不能访问$a的
echo
$a;
}
aa();
总结:在函数体内定义的PHP
Global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,
复制代码
代码如下:
$glpbal
$a;
$a=123;
function
f()
{
echo
$a;
//错误,
}
再看看下面一例
复制代码
代码如下:
function
f()
{
global
$a;
$a=123;
}
f();
echo
$a;
//正确,可以使用
2:PHP
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文件。
设置PHP
Global变量
为
on
‘肆’ PHP中global与$GLOBALS区别
很多人都认为global和$GLOBALS[]只是写法上面的差别,其实不然。
根据官方的解释是
1.$GLOBALS['var']是外部的全局变量本身。
2.global $var是外部$var的同名引用或者指针。
‘伍’ php的global问题
我试了试这个代码,我这边是正常的呢,函数内变量x为5
‘陆’ 请教php global的用法
<?
$var = 100;
function fun1(){
echo($var);
}
function fun2(){
global $var;
echo($var);
}
?>
你尝试分别调用fun1和fun2就知道了,fun1中因为没有使用global,所以无法使用在外部定义的$var的值,所以输出地是一个空值,而fun2声明了global,即把$var视为一个全局变量来调用,那么fun2中就可以获得$var的值,那么输出的是“100”
至于你给的第一段代码,这个是无效的,global只在函数或者类方法内部可用,在外部使用则不会有任何效果,PHP依然把它当做一个普通变量来使用。
还有一种进阶的用法:
<?php
function fun(){
global $var;
$var = 100;
}
fun();
echo($var);
?>
将会输出100,这里,$var只在fun中使用,但是因为使用了global定义为了全局变量,因此在函数外部也可以使用,灵活使用一下,其实还有更多用法。不过全局变量还是尽可能少用,会让你的代码混乱不堪的
‘柒’ PHP中global 什么是什么功能
在php中,如果在函数中使用全局变量,php会认为这个变量没有定义。如果我们需要在函数内部使用这个全局变量,这时我们就需要在函数内部,这个全局变量前加关键字global。
<?php
$str="string";
functiontest()
{
if(isset($str))
{
echo"thestringisdefined";
}
else
{
echo"thestringisundefined";
}
}
test();
?>
这是在浏览器中的运行结果:
thisstringisundefined
<?php
$str="string";
functiontest()
{
global$str;//上面的test函数中没有这句话
if(isset($str))
{
echo"thestringisdefined";
}
else
{
echo"thestringisundefined";
}
}
test();
?>
浏览器中的运行结果:
this string is defined
‘捌’ php全局变量用public 跟global的区别
$globals
—
引用全局作用域中可用的全部变量。
一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
即出现过的全局变量,就可以通过$globals这个数组取得。
php生命周期中,定义在函数体外部的所谓全局变量,函数内部是不能直接获得的。
‘玖’ php global 数组
用处就是在函数里面,可以无需要什么就能使用全局量,例如:
<?php
function disp(){
echo $GLOBALS['a'];
}
$a='123';
disp();
?>
下面的函数也可以:
<?php
function disp(){
global $a;
echo $a;
}
$a='123';
disp();
?>
下面的程序就输出为空:
<?php
function disp(){
echo $a;
}
$a='123';
disp();
?>
理解全局变量了吗--函数外面定义的变量。
‘拾’ php如何注销global定义的全局变量
global 只用在函数中声明全局变量的引用
php 在程序结束时将释放一切资源,当然包括变量
$函数销毁
global $db;
global $user;
unset($db,$user);