php全局变量与javascript全局变量的区别

我们永远不能怪罪任何帮了倒忙的志愿者。他们是一心对你好,别让他们心凉。相信自已。不要妄加评判自已,也不会把自已交给别人评判,更不会贬低自已。

因为经常写php与js代码,有时候使用全局变量的时候经常的混淆,这篇文章就来说说js中的全局变量与php中的全局变量的区别。

js全局变量与php全局变量的区别

php全局变量

php的全局变量一般都是在函数外面进行声明,如果在函数里面调用全局变量的话,一定要使用 global 进行声明。

示例:

# feiniaomy.com 
$x = 5;
function a() {
    global $x;
    $x = $x + 5;
}
a();
echo $x;

输出结果:

10

js全局变量

JS中的声明全局变量分为显式声明与隐式声明,可参考下面的示例

(1)、js全局变量显式声明

在js中使用var(关键字)并且在函数外部声明变量的方式,则为全局变量而在函数内声明的为局部变量。

示例:

// feiniaomy.com 
var tt = 5;  //全局变量
function a()
{
  var cc = 3; //局部变量
  tt = tt + 10;
}
a();
console.log(tt);  // 输出 15
console.log(cc);  // 提示没有变量

(2)、js全局变量隐式声明

如果不使用var关键字来声明变量,直接给一个变量赋值,那么这个变量无论是在函数内还是在函数外,都将做为全局变量来使用。

示例:

// feiniaomy.com 
tt = 5;  
function a()
{
  cc = 3; 
  tt = tt + 10;
}
a();
console.log(tt);  // 输出 15
console.log(cc);  // 输出 3

ps:js全局变量的缺点

1、全局变量保存在静态存贮区,程序开始运行时为其分配内存,程序结束释放该内存。与局部变量的动态分配、动态释放相比,生存期比较长,因此过多的全局变量会占用较多的内存单元。

2、全局变量破坏了函数的封装性能。函数象一个黑匣子,一般是通过函数参数和返回值进行输入输出,函数内部实现相对独立。但函数中如果使用了全局变量,那么函数体内的语句就可以绕过函数参数和返回值进行存取,这种情况破坏了函数的独立性,使函数对全局变量产生依赖。同时,也降低了该函数的可移植性。

3、全局变量使函数的代码可读性降低。由于多个函数都可能使用全局变量,函数执行时全局变量的值可能随时发生变化,对于程序的查错和调试都非常不利。

本文php全局变量与javascript全局变量的区别到此结束。当你伸出两个指头谴责别人时,佘下的三个指头恰恰是指着自已的。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
利用ajax+php实现商品价格计算

Ajax获取php返回json数据动态生成select下拉框的实例

PHP Ajax实现表格实时编辑

Ajax实现phpcms 点赞功能实例代码

Ajax+php数据交互并且局部刷新页面的实现详解