PHP内置函数研究系列第一期,采用PHP函数import_request_variables()实现变量导入到全局作用域,主要讨论import_request_variables()函数的作用与用法。
import_request_variables() 函数应该不常用,其作用是将 GET/POST/Cookie 变量导入到全局作用域中,便于参数的调用,当然前提是不考虑一系列安全方面的因素,直接把变量导入到全局作用域是不鼓励的,但在开发的时候可能由于你禁止了register_globals,但又想用到一些全局变量,那么此函数就很有用。
一,函数原型
bool import_request_variables ( string types [, string prefix] )
二,版本兼容
PHP 4 >= 4.1.0, PHP 5
三,函数基础用法与实例
1,将GET变量导入到全局作用域
请求的URL路径:http:/www.liuhui.info/index.php?foo=liuhui
<?php
import_request_variables("g");
echo $foo;
?>
输出结果为:liuhui,传统的做法是使用$_GET['foo']输出
其中第一个参数types 可为大小写的字母‘G’、‘P’和‘C’,分别表示导入GET、POST 和 Cookie参数,上面实例是将GET参数导入到全局作用域。
2,将GET变量导入到全局作用域,并给每一个参数加上一个前缀
请求的URL路径:http:/www.liuhui.info/index.php?foo=liuhui
<?php
import_request_variables("g",'prefix_');
echo $prefix_foo;
?>
输出结果为:liuhui
注意,调用全局参数的变量为前缀+参数名,如上$prefix_foo;
3,同时将GET/POST变量导入到全局作用域
只需要更改一下 types参数,如:gp 或gP 其大小写不限,但要注意这些字母的顺序,当使用“gp”时,POST 变量将使用相同的名字覆盖 GET 变量。任何 GPC 以外的字母都将被忽略。
4,注意前缀参数prefix。虽然 prefix 参数是可选的,但如果不指定前缀,或者指定一个空字符串作为前缀,你将获得一个 E_NOTICE 级别的错误。使用默认错误报告级别是不显示注意(Notice)级别的错误的。
当然你可以考虑用$GLOBALS全局变量获取参数,但在使用上还是不如import_request_variables()函数导入全局作用域方便,更多用法请参考PHP手册。请关注下一期PHP内置函数研究系列。
采用PHP函数import_request_variables实现变量导入到全局作用域
评论和回复
liuhui 发表于 2010年05月17日09:29
@ http://www.liuhui.info
使用时要注意import_request_variables()变量覆盖漏洞
关于LiuHui
实践是一个过程,记录是一种方式,无数个思考的点滴托起liuhui.info!
专注是一种行为,分享是一种快乐,只要坚持必定能创造价值!
LiuHui,PHP Engineer Doing@HangZhou CHINA
提供的东西是否有价值?欢迎你的反馈和更多交流!
@Doing 
- 22:51:19:疾风知劲草:词典解释【解释】:在猛烈的大风中,只有坚韧的草才不会被吹倒。比喻只有经过严峻的考验,才知道谁真正坚强。
- 09:15:52:特别的时候总是让人快乐,因为特别所以就有一种特别的心态。生活中的任何时候都是很特别的,只是有些特别的环境和场景你没有用心去感受,所以产生的效果不同罢了!同样的一个时候,感觉就不一样,话说今天就很特别。
- 20:13:57:折腾也是自己的选择,但没有折腾就失去了生活的意义,今天你折腾了吗?其实我一直很想折腾的,只不过是折腾得不知道何为折腾了!
- 11:37:13:《Linux系统管理技术手册(第二版)》,书很厚,价格高,内容丰富,值不值得!传说中的本书从第1版开始,即成为全面、深入而且颇富实用性的Linux系统管理权威参考书。本书适合于从Linux初学者到具有丰富经验的Linux专业技术人员使用。大而全却不深,希望不是这样的情况!
- 11:33:57:人始终希望把事情做完美,虽然这世界上没有完美的东西,但近似于完美的愿意是持久的,就拿我买的这一套PERL书籍来说,中级与高级的两本都是影印版的,可就是没有初级的影印版,找了半年也找不到,为什么就不能买中文版的!这是什么心态呢?
黑板报
闪光塔 
性能测试工具sysbench安装与使用
采用PHP函数http_build_query生成URL-encoded的查询字符串
采用PHP函数memory_get_usage获取PHP内存清耗量
PHP函数spl_autoload_register实现自动加载研究
JavaScript执行多个window.onload产生too much recursion错误分析
程序员的可持续发展思考
如何解决MySQL对数据量大的表操作时产生Repair with keycache问题
CentOS系统下Apache环境安装GBK编码程序网页乱码问题
如何远程访问MySQL数据库设置权限方法总结
采用PHP函数uniqid生成一个唯一的ID
综合信息
文章100%原创

Creative Commons 署名-非商业性使用-相同方式共享 2.5 中国大陆 License.
分类统计:10个
文章统计:81篇
网站模板:进化论 v1.0
程序设计:liuhui v2.0
消耗世界能源@2010.1.24