函数变量作用域

时间:2022-12-12 14:54:04
   在php页面中声明的变量叫全局变量
函数内的变量叫局部变量


$a=22;
function t(){
$b=99;
echo $a;
}


t();
echo $b;


//声明全局变量global
function t2(){
global $a;
echo $a;
}
t2();
//超全局变量在页面的任何部分,包括函数,方法等,都可以直接访问
function t3(){
print_r($_GET);
}
t3();


PHP中,  
函数运行时, 有其自己,独立的变量空间. 
函数体内的变量,与外界的变量,无关. 
即使是变量的名字相同. 
**/ 
/** 
当函数调用时,系统为其申请一块独立的"调用空间" 
函数体内的变量,在其独立的"调用空间内", 
与外界的变量无关. 
内部叫:局部变量 
外部叫:全局变量 
**/ 
function t2() { 
    echo $num; 

t2(); 
// 局部内,即t2的空间内,有$num变量吗? 
// 没有,虽然全局内有$num,但PHP中,函数并不会去全局寻找$num 
// 简单说:PHP函数内的变量,就局限在函数的{}内. 
/* 
函数调用结束后,申请的独立的"调用空间",就释放掉. 

下次,再调用,再申请,函数还得从头初始化. 

2.

mysql_fetch_assoc与mysql_fetch_array区别

mysql_fetch_assoc 得到的是关联数组。
mysql_fetch_array 可以得到关联数组也可以得到索引数组,也可以二者都有。
下面以一个例子进行说明它们的区别:
假如从数据库教程取出一个用户的用户名和密码
username   password
test       123456
用assoc  结果是array([username]=>'test',[password]=>'123456')
用array  根据参数不同结果可能是以下三种之一
         array([username]=>'test',[password]=>'123456')
         array([0]=>'test',[1]=>'123456')
         array([username]=>'test',[password]=>'123456',[0]=>'test',[1]=>'123456')
 
提示和注释
注释:mysql_fetch_assoc() 和用 mysql_fetch_array() 加上第二个可选参数 MYSQL_ASSOC 完全相同。它仅仅返回关联数组。这也是 mysql_fetch_array() 初始的工作方式。
提示:如果在关联索引之外还需要数字索引,用 mysql_fetch_array()。
注释:本函数返回的字段名是区分大小写的