PHP中变量的作用域
1、超级变量($_POST,$__GET,$__GLOBAL,$__COOKIE,$__FILES,$__ENV,$REQUEST,$__SESSION)在脚本的任何地方可以直接使用。2、常量,被声明以后,可以供该声明后的所有位置使用。
如:
<?php
function changeName(){
define ('Gooodd' ,22222);
echo 'you are a ='.Gooodd.'<br />';
}
changeName() ;
echo 'you are a ='.Gooodd;
或
<?php
define ('Gooodd' ,22222);
function changeName(){
// global $var;
$var=10;
// define ('Gooodd' ,22222);
echo 'you are a ='.Gooodd.'<br />';
return $var;
}
$var=12;
//echo 'var='.$var.'<br />';
echo 'you are a ='.Gooodd.'<br />';
changeName() ;
// echo 'var='.$var;
echo 'you are a ='.Gooodd;
3、在一个脚本中声明的变量(其实就是全局变量)是可以在该脚本该声明之后的语句中被使用,但是不能被函数中所使用(会被覆盖)。
如
<?php
function changeName(){
// global $var;
$var=10;
echo 'var='.$var.'<br />';
return $var;
}
$var=12;
echo 'var='.$var.'<br />';
changeName() ;
echo 'var='.$var;
输出的是:
12
10
12
4、如果要在函数内部使用函数外部的全局变量,那么要在函数内部中加global 关键字进行声明。
如:
<?php
function changeName(){
global $var;
$var=10;
echo 'var='.$var.'<br />';
return $var;
}
$var=12;
echo 'var='.$var.'<br />';
changeName() ;
echo 'var='.$var;
输出是:
12
10
10
5、在函数内部创建并被声明为静态的变量无法在函数外部可见, 但是可以在函数的多次执行过程中保持原来的数值。
<?php
function changeName(){
static $var=0;
++$var;
echo 'var='.$var.'<br/>';
return $var;
}
changeName() ;
changeName() ;
changeName() ;
输出是:
1
2
3
6、函数内部创建的变量是局部的,当函数终止时,该变量被释放。
7、因为包含文件像原来的脚本的一部分那样工作,所以在incLude()那一行之前定义的变量可供被包含文件使用,此外,包含文件内定义的变量可供include()那一行之后的脚本使用。
页:
[1]