因为经常写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全局变量的区别到此结束。当你伸出两个指头谴责别人时,佘下的三个指头恰恰是指着自已的。小编再次感谢大家对我们的支持!