PHP和JS中全局变量和局部变量

时间:2023-03-09 08:40:51
PHP和JS中全局变量和局部变量

一,PHP中全局变量和局部变量

php与C++中对全局变量和局部变量定义类似,全局变量:函数外定义的变量,在全局通用;局部变量:在函数内定义的变量,只在函数内有效。PHP中变量范围跨越了include和require,include和require引入的文件,当作是当前文件的一部分。php与C++有两点不同,下面详细介绍。

1,C++可以在函数内随意调用全局变量,php在函数内调用全局变量时候,需要显示声明,声明方式有两种:

(1)    使用global声明,示例如下:

<?php
$a=1;
$b=2;
function Sum() {
global $a,$b;
$b = $a + $b;
}
Sum();
echo $b;
?>

上面程序将输出"3"。通过在函数内部声明$a和$b是全局变量,所有变量都参考全局。一个函数可以操纵的全局变量的数量没有限制。

(2)    使用PHP定义的$GLOBALS数组,示例如下:

<?php
$a=1;
$b=2;
function Sum() {
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
}
Sum();
echo $b;
?>

$GLOBALS数组是:用全局变量的名字做键值而该变量的值做对应数组元素值的关联数组。作用域的另外一个重要的值得注意的地方是static 变量。

2,PHP中的变量作用域是基于函数内外来区别对待的,在函数内定义的变量是局部变量,函数外部定义的变量是全局变量;C++语言,在循环体定义变量,在循环体内有效,循环体结束,变量就失效了。PHP中循环体内定义的变量是循环体所在函数的局部变量,不仅在循环体内有效,在所在函数内同样有效,循环体结束,变量不会失效。

二,JS中全局变量和局部变量

引用

js作用域