PHP中$$的应用
PHP中$表示一个变量的声明,$value='test';表示变量value的值是test。
而$$则好像是C语言中的指针,它指向一个变量值的一个变量。
例如:$$value='a';这句话的意思就是首先取$value变量的值,为test,然后再将其值变成一个变量即表示为$test='a';
- <?php
- $value='test';
- $test='a';
- echo $$value;
- ?>
- <?php
- $value='test';
- $$value='a';
- echo $test;
- ?>
两个代码输出的值都是a。
这里举个很经典的例子作为他的应用:
我们经常会遇到通过HTTP GET请求和POST请求等提交很多参数,如下代码:
- <?php
- $action=$_GET[action];
- $mid=$_GET[mid];
- $keywords=$_GET[keywords];
- if($action=='list'){
- echo "list";
- }
- if($mid=='1'){
- echo "mid";
- }
- if($keywords=='search'){
- echo "keywords";
- }
- ?>
我们想要从GET请求中获取变量action、mid、keywords的值,那么就需要分别建立三个赋值函数,从GET请求中获取出来,这样写起来非常的麻烦,而且不适合日后的扩展操作,这是我们引用$$魔法变量便可轻松的解决此问题,代码如下:
- foreach ($_GET as $_key=>$_value){
- $$_key=$_value;
- }
这里就是首先吧$_GET请求变量以数组的形式赋值给$_key:$_value,比如我们提交url为?action=list,那么$_key的值就是action,$_value的值便是list,紧接着我们就使用魔法变量$$_key即变成$action的值为$_value即list,这样就将值list赋值给了变量$action,同样不管我们提交什么请求,他都能进行变量赋值操作,当然常规的写法还有很多种,如下:
- foreach ($_GET as $_key=>$_value){
- $$_key=$_GET[$_key];
- }
随机推荐
- [转]win7 64位下完美安装64位oracle 11g
最近在网上搜如何在win764位的情况下安装64位的oracle,并且使用PLSQL Developer来管理oracle. 于是开始在oracle官网下载数据库,下载是一件很简单的事情,问题是在百度 ...
- Angular总结
angular关键核心点进行总结 1 2 angular中有很多知识点需要学习,学习成本是很大的,我通过平常开发中把一些 很重要知识点总结下来,不管是以后拿来用,或者跳槽面试需要,我都感觉是很有帮助的 ...
- marquee用到的属性
一.marquee标签的几个重要属性: 1.direction:滚动方向(包括4个值:up.down.left.right) 说明:up:从下向上滚动:down:从上向下滚动:left:从右向左滚 ...
- IT从业者疫情之下出路何在
作为一个IT行业十年经历的从业人员,在北京大公司工作过,但因衡量着北京大都市的繁华下高消费和高房价,选择到二线城市发展和组建家庭,由此逃离北上广,结束了数年的北漂生涯.很荣幸到了二线城市顺利遇见属于自 ...
- 操作系统-IO管理和磁盘调度
I/O设备 IO设备的类型 分为三类:人机交互类外部设备:打印机.显示器.鼠标.键盘等等.这类设备数据交换速度相对较慢,通常是以字节为单位进行数据交换的 存储设备:用于存储程序和数据的设备,如磁盘.磁 ...
- 5行js代码搞定导航吸顶效果
一.HTML布局 首先写HTML布局 <body> <div id="wrap"></div> </body> 二.CSS样式 给点 ...
- React Native Debug原理浅析
第一次在segmentfault写博客,很紧张~~~公司项目上ReactNative,之前也是没有接触过,所以也是一边学习一边做项目了,最近腾出手来更新总结了一下RN的Debug的一个小知识点,不是说 ...
- 支持IE6、IE7、IE8等低端浏览器的简化版vue
最近研究Vue的底层原理,写了一个简化版的Vue,可以在支持IE6.IE7.IE8等低端浏览器运行.由于低端浏览器不支持对象属性定义,所以设置属性不支持直接赋值,需要调用虚拟机实例的set方法.目前只 ...
- GitHub 热点速览 vol.10:疫情下的 GitHub
作者:HelloGitHub-小鱼干 摘要:如果说上周的 GitHub 是股市附体 star 低迷不振,那么本周的 GitHub 像极了受到疫情影响而未开学的高校们,新生 GitHub 项少,能上 G ...
- linux 安装 memcached
1.Linux系统安装memcached,首先要先安装libevent库. yum install libevent libevent-deve 2.安装memcached yum install - ...