PHP知识、源码、教程、框架、程序分享! -- PHP社区 关于我们 联系我们 联系电话 联系QQ

PHP编程语言函数作用域

发表时间:2014-09-25 点击:

[本文摘要]:PHP编程 语言函数作用域 每一个函数都有它自己的一些变量。任何一个 函数 定义外的变量默认情况下将不能从函数内访问到。当一个函数开始运行时,它的函数参数会被定义。如果你在...

PHP编程语言函数作用域

每一个函数都有它自己的一些变量。任何一个函数定义外的变量默认情况下将不能从函数内访问到。当一个函数开始运行时,它的函数参数会被定义。如果你在函数里面使用一个新的变量,它们被定义为只能在函数内使用而且函数运行结束时将不能再访问。下面的例子中,变量$var的值在函数调用后不会被改变:

	function func()
	{
	 $var = 2;
	}
	$var = 1;
	func();
	print $var;

当调用函数func的时候,变量$var被赋值为2,但是只是在函数中有效而且并没有改变函数外的变量$var的值。这个代码片断将打印出1。

那么现在你如果确实想去访问或者改变函数外的变量$var值,怎么办呢?那就像先前的“变量”部分中提到的,你可以使用内置的$GLOBALS[]数组来访问脚本全局作用域中的变量。

把上面的脚本按照下面的方法重写:

	function  func()
	{
	 $GLOBALS["var"] = 2
	}
	$var = 1;
	func();
	print $var;

它将打印出2。

global关键字也可以让你声明哪些变量是可以访问的,让它们引入到函数作用域里面去。但是,我们并不推荐使用这个关键字。原因有很多,例如因为变量引用赋值造成的运行混乱,不支持unset(),等等。

这里有一个该关键字的简单描述——但是请不要使用它!

语法是:

	global $varl, $var2, ...;

给上一个例子增加一个global行可以得到如下代码:

	function func()
	{
	 global $var;
	 $var = 2;
	}
	$var = 1;
	func();
	print $var;

这么编写例子也是打印出2。

版权声明:本文系技术人员研究整理的智慧结晶,转载勿用于商业用途,并保留本文链接,侵权必究!

本文链接:http://php.aixc.cn/phpzs/phphanshu/287.html

声明:本站技术及源码均为原创,转载请勿用于商业用途,并注明出处及原文链接,侵权必究。