php C# Javascript变量作用域(scope/作用范围)比较
2006-09-01  作者:amao www.flyy.info  同分类文章
description:
  学习了php,C#,javascript,里面的变量作用范围是有很大区别的,
  三者间相同的地方是:在函数里面的定义的变量在函数外层是无法访问的(是没有定义的),
   c#和javascript的变量作用范围相同点是: 存取函数里面的未定义的变量时,会尝试在代码上层中寻找是否已经定义了.
  而php不会,要使用global 关键字  或者$GLOBALS['a']超全局变量  (注:在 Zend 引擎 1 代  global $var 是$var=&$GLOBALS['var']的意思)
//转载请署名出处www.flyy.info
//转载请署名出处www.flyy.info
在php当中变量的作用范围php手册上是这样描述的

在用户自定义函数中,一个局部函数范围将被引入。任何用于函数内部的变量按缺省情况将被限制在局部函数范围内。例如:

<?php
$a
= 1; /* global scope */

function Test()
{
   echo
$a; /* reference to local scope variable */
}

Test();
?>

这个脚本不会有任何输出,因为 echo 语句引用了一个局部版本的变量 $a,而且在这个范围内,它并没有被赋值。你可能注意到 PHP 的全局变量和 C 语言有一点点不同,在 C 语言中,全局变量在函数中自动生效,除非被局部变量覆盖。

C#(C,C++,Java)是一种块结构语言(block structured language)代码块石大括号{}包括起来的0或者多行代码.
变量名称对编译器是已定义的范围从首次被声明起,到该声明代码块最近的结束(右大括号)为止,



if ( ** ) {
    double discount=0.02;
}
//discount在if外面是没有定义的

Javascript中全局变量的作用于世全局的,在javascript中,处处都有定义,而在函数内声明的变量值在函数体内部有定义


var scope="global";
function checkscope(){
    var scope="local";
    document.write(scope);//输出局部变量而不是全局变量
}
checkscope();//输出local


相关
全美100大网站Web服务器分布
20条减肥指南 每周减1斤的饮食建议
淘宝网举行的波涛汹涌-美胸大赛
我叫金三顺的主题曲和片尾曲
创建用以锁定计算机的桌面快捷方式
中国不发达是由于丘处机路过牛家村
云南省公务员考试报名时间考试安排
联通推35元上网不限量包月cdma
sourceforge九月有趣更新 排名前25位的开源项目
《大剑》(CLAYMORE)[四月新番][WLGO][更新03话][AVI+