很多朋友在编写php程序的时候有时候对变量总有着不能确定的问题,而且也有很多问题就是因为
变量的处理不当所造成的。这里就php变量系统说以下,不足之处还望指教。
php的变量分为全局变量与局部变量。
何为全局变量?
学过c/java/c++之类的朋友一定了解main(){}内声明的变量所达的区域了~,而php为解释性语句并非
编译语言,我们也知道php不存在main(){}主体,从何声明?其实php页面本身就是个main(){}只要是在页面内
而非在函数内声明的变量我们都称其为全局变量...例如:
<?php
$int_a=0; //初始全局变量$int_a将其赋值为0
echo "全局变量:".$int_a; //打印全局变量
function child_a(){ //局部变量的使用
$int_a=0; //这里是局部变量,虽然与全局变量名相同但此变量仅在child_a内可见
echo "from child_a:".$int_a;
}
function child_b(){ //调用全局变量
global $int_a; //声明调用全局变量
echo "from child_b:".$int_a;
}
?>
从上面的一个例子,我们可以很简单明了的看明白php中全局与局部变量之间的差距...
另我们高兴的是php提供了其他的cgi语言的服务器全局变量...这些变量当页面调入的时候就已经由系统自动生成
这些全局变量包含在
$_server($http_server_vars) (服务器提供的相关变量服务) php4.1.0
$_env($http_env_vars) (保存相关环境变量) php4.1.0
$_post (保存使用form post方法提交的变量) php4.1.0
$_get (保存使用form get/uri方法提交的变量) php4.1.0
$_cookie (保存使用页面获得的cookie数据) php4.1.0
$_session (保存站点内会话变量) php4.1.0
$http_post_vars (同$_post,按linuxforum.net一帖对此的评论是$_post的效率比其更高) php4.1.0
$http_get_vars (同$_get,评论同上.) php4.1.0
$_request (包含了$_get,$_post,$_cookie,$_files) php4.1.0
$_files (严格的说此变量已经包含在$_post和$http_post_vars,主要是获得form post方式提交的file变量)
| 对此文章发表了评论 |
