函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
<?php
$a = 12;
function var_global(){
echo $a; //结果null
global $a;
echo $a; //结果12
}
?>
可以参看这里拓展:http://php.net/manual/zh/language.variables.scope.php
函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
<?php $a = 12; function var_global(){ echo $a; //结果null global $a; echo $a; //结果12 } ?>
可以参看这里拓展:http://php.net/manual/zh/language.variables.scope.php
转载于:https://my.oschina.net/147258369/blog/296812
怎么在MFC里面声明全局变量或者函数
我们可以在CWinApp的派生类中声明静态成员变量或者成员函数,那么就可以从所有的类去访问他们:
例如:
// MyApp.h<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
class CMyApp : public CWinApp
{
public:
CMyApp();
static int g_nMyVariable; // 声明一个全局变量
static void g_MyFunction(); // 声明一个全局函数
...
etc
...
};
// MyApp.cpp
int CMyApp::g_nMyVariable = NULL; // 全局变量定义和初始化 CMyApp::g_MyFunction() // 全局函数定义
{
}
现在,这个变量和函数就可以从其他类中通过如下的语法访问:
CMyApp::g_nMyVariable 和 CMyApp::g_MyFunction
通常情况,写在函数内的变量称为局部变量。
在编写程序的时候,如果想为一个在函数外的变量重新赋值,并且这个变量会作用于许多函数中时,就需要告诉python这个变量的作用
域是全局变量。此时用global语句就可以变成这个任务,也就是说没有用global语句的情况下,是不能修改全局变量的。
global简单例子
全局变量,使用global声明:# coding:utf-8
var = 0
def fun():
global var # 此处是global对var的声明,只有声明后,才可以在这个函数中改变var的值
var = 5
print var # 0
fun()
print var # 5
如果不加global声明, 第二次打印var还是0
错误使用global
1. 在if __name__==’__main__’:中使用global
系统警告:SyntaxWarning: name ‘var’ is assigned to before global declaration
错误代码# coding:utf-8
var = 0
if __name__=='__main__':
global var # 此处global对var的声明, 会引发系统语法警告
print var
正确代码# coding:utf-8
var = 0
if __name__=='__main__':
print var # 直接使用var
最好的直接解决这个问题的方法是把global声明从 if __name__==’__main__’: 中删除。在这里是不需要声明global的。因为与其他语
言不同,Python中的if语句不会再引入一个新的作用域(scope),任何变量分配的都是全局变量(global)。这也解释了为什么它是一
个错误,作为一个全局变量,在使用变量名之前是不允许再一次声明为全局变量, 这是多余的。
简言之, if __name__==’__main__’: 中的变量都是全局的,所以你在这中间再一次声明global是错误的,所以系统会发出警告。