当前位置:首页 » 编程语言 » PHP全局变量作用

PHP全局变量作用

发布时间: 2023-01-25 00:35:44

php静态变量和全局变量的区别

最大的差别还是在于作用域。


举个例子:

<?php

functiona($a)
{
static$aa;
$aa[]=$a;
return$aa;
}

a(1);
a(2);
$a=a(3);

var_mp($a);

//输出
//array(3){[0]=>int(1)[1]=>int(2)[2]=>int(3)}

以上是静态变量的例子;

以上例子的惊天变量 $aa 是无法被外部访问的。


再举一个全局变量的例子:

<?php
global$aa;

functiona($a)
{
global$aa;
$aa[]=$a;
return$aa;
}

a(1);
a(2);
a(3);
$aa[]=4;
$aa[]=5;

var_mp($aa);
//输出
//array(5){[0]=>int(1)[1]=>int(2)[2]=>int(3)[3]=>int(4)[4]=>int(5)}

这个时候,全局变量 $aa 是能被全局访问的。

Ⅱ 用PHP开发时为什么不要用全局变量

php没有入口函数,都是些全局代码。所以php的机制是在函数中不能直接访问全局变量。相当于一个保护机制防止变量污染。
如果使用全局变量在子作用域会增加程序的耦合性。

Ⅲ 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变量在实际应用中会发现许多问题需要我们不断的去完善处理。我们在这篇文章中就针对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里什么是全局变量和局部变量

在程式内定义的变量称为局部变量,只在程式内部使用,随程式结束而消失。定义在程式外部的变量就叫全局变量,可以被程式呼叫,但不会随程式结束而消失。

Ⅵ PHP静态全局变量和普通全局变量有什么区别

以前在远标了解过全局变量与全局静态变量的区别:
(a)若程序由一个源文件构成时,全局变量与全局静态变量没有区别。
(b)若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独享,即:全局静态变量对组成该程序的其它源文件是无效的。
(c)具有外部链接的静态;可以在所有源文件里调用;除了本文件,其他文件可以通过extern的方式引用;
静态全局变量的作用:
(a)不必担心其它源文件使用相同变量名,彼此相互独立。
(b)在某源文件中定义的静态全局变量不能被其他源文件使用或修改。
(c) 只能在本文件中使用!具有内部链接的静态;不允许在其他文件里调用;

Ⅶ php全局变量问题

PHP 变量作用域
$count=0时,它是局部变量。作用域是当前函数一次调用。
但global $count;时,则其变为全局变量。因为test函数调用自身,所以$count是从第一次被调用开始一直都是全局变量。每次调用都保持着赋值以后的值。
当把global拿掉,他就111了。 因为没有global,每次被调用都是一个新的$count。
如果全局变量$count一直保持着赋值以后的值,那为什么最后一行代码echo $count输出的是0,而不是9?参考文献(http://hounwang.com/lesson.html)
当然这个程序段执行时候test函数执行几次,就对count加几次,而当count不小于10开始,count--执行,并执行10次。最后他才变0;

Ⅷ PHP全局变量

$GLOBALS

$GLOBALS — 引用全局作用域中可用的全部变量

说明

一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

范例

Example #1 $GLOBALS
范例

<?php
function test() {
$foo = "local variable";

echo '$foo in global scope: ' . $GLOBALS["foo"] . "\n";
echo '$foo in current scope: ' . $foo . "\n";
}

$foo = "Example content";
test();
?>

以上例程的输出类似于:

$foo in global scope: Example content
$foo in current scope: local variable

注释

Note:
“Superglobal”也称为自动化的全局变量。这就表示其在脚本的所有作用域中都是可用的。不需要在函数或方法中用 global $variable; 来访问它。

Note: 变量可用性

与所有其他超全局变量不同,$GLOBALS在PHP中总是可用的。

Ⅸ php全局变量用public 跟global的区别

$globals

引用全局作用域中可用的全部变量。
一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
即出现过的全局变量,就可以通过$globals这个数组取得。
php生命周期中,定义在函数体外部的所谓全局变量,函数内部是不能直接获得的。

Ⅹ PHP中全局变量global和$GLOBALS的区别分析

1:Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件。
2:在 数组中,每一个变量为一个元素,键名对应变量名,值对应变量的内容。GLOBALS数组中,每一个变量为一个元素,键名对应变量名,值对应变量的内容。GLOBALS 之所以在全局范围内存在,是因为 是一个超全局变量。注意GLOBALS是一个超全局变量。注意GLOBALS 的写法,比如变量写法为a1,写法为GLOBALS['a1']。

热点内容
编程猫角度 发布:2025-07-20 18:40:19 浏览:507
hibernatesession的缓存 发布:2025-07-20 18:38:46 浏览:13
安卓模拟器下载电脑版哪个好 发布:2025-07-20 18:37:59 浏览:659
三星手机存储卡用不了 发布:2025-07-20 18:37:48 浏览:136
java数组返回 发布:2025-07-20 18:34:20 浏览:259
sqlserver不存在 发布:2025-07-20 18:28:05 浏览:837
原神电脑配置怎么玩不卡 发布:2025-07-20 18:07:06 浏览:955
反编译获取原代码 发布:2025-07-20 17:49:43 浏览:492
plc编译怎么找 发布:2025-07-20 17:48:56 浏览:162
无效的宏名称将编译哑宏 发布:2025-07-20 17:48:16 浏览:155