php之可变变量的实例详解


Posted in PHP onSeptember 12, 2017

php之可变变量的实例详解

前言:

最近在技术博客网站上偶然间浏览到一个新名词:"php的可变变量";然后就在网上查了下了解下,觉得用的还挺方便的,下面都是从网上代码copy到我本地环境运行后算是"拿来主义!"

php手册上这样说:

有时候使用可变变量名是很方便的。就是说,一个变量的变量名可以动态的设置和使用。一个普通的变量通过声明来设置,例如:

$a = 'hello';
$$a = 'world';
echo "$a ${$a}";
echo "$a $hello";

它们都会输出:hello world。

要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要$$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]。

类的属性也可以通过可变属性名来访问。可变属性名将在该调用所处的范围内被解析。例如,对于 $foo->$bar 表达式,则会在本地范围来解析$bar 并且其值将被用于 $foo 的属性名。对于 $bar 是数组单元时也是一样。也可使用花括号来给属性名清晰定界。

看到这里还是云里雾里的,再看,在日常html的<form ...>POST过来很多变量需要处理的,一般的我们会这样处理:

$id    = $_POST['id'];
$name = $_POST['name'];
$sex   = $_POST['sex'];
echo "<p>Your order is as follows:</p>";
echo "<br />\$id=".$id;
echo "<br />\$name=".$name;
echo "<br />\$sex=".$sex;

但是现在问题来了,如果POST过来很多变量我们岂不累死啦!那现在可变变量的用处来啦,我们这样写:

$array = array();
foreach ($_POST as $key => $value) {
  $array[$$key] = $value;
}
echo '<pre>'; // 换行
print_r($array);
// 是不是很方便的呢!!

再来一个例子:

有class A和class B以及class C,他们都有自己的函数还是前端传值,这次是两个一个class,一个function同样的

$class=$_GET['class'];
$func=$_GET['func'];
$obj=new $class();
$obj->$func();

这是做单入口模式的思路!

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
smarty 缓存控制前的页面静态化原理
Mar 15 PHP
用php实现选择排序的解决方法
May 04 PHP
解析php curl_setopt 函数的相关应用及介绍
Jun 17 PHP
关于使用coreseek并为其做分页的介绍
Jun 21 PHP
yii2.0之GridView自定义按钮和链接用法
Dec 15 PHP
php目录拷贝实现方法
Jul 10 PHP
WordPress中邮件的一些修改和自定义技巧
Dec 15 PHP
php封装的mysqli类完整实例
Oct 18 PHP
CI框架表单验证实例详解
Nov 21 PHP
PHP实现微信申请退款功能
Oct 01 PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
Apr 23 PHP
PHP清除缓存的几种方法总结
Sep 12 #PHP
PHP 传输会话curl函数的实例详解
Sep 12 #PHP
基于ThinkPHP5.0实现图片上传插件
Sep 25 #PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 #PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 #PHP
php mysql PDO 查询操作的实例详解
Sep 23 #PHP
PHP实现权限管理功能示例
Sep 22 #PHP
You might like
索尼SONY SRF-S83/84电路分析和打磨
2021/03/02 无线电
从Web查询数据库之PHP与MySQL篇
2009/09/25 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
2014/05/07 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
thinkPHP多语言切换设置方法详解
2016/11/11 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
基于jQuery实现点击列表加载更多效果
2016/05/31 Javascript
Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法
2016/10/13 Javascript
js for循环倒序输出数组元素的实例
2017/03/01 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
2017/09/05 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
D3.js实现简洁实用的动态仪表盘的示例
2018/04/04 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
element-ui 中使用upload多文件上传只请求一次接口
2019/07/19 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
原生JS实现留言板
2020/03/26 Javascript
vue 动态添加的路由页面刷新时失效的原因及解决方案
2021/02/26 Vue.js
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
Python微信库:itchat的用法详解
2017/08/14 Python
virtualenv实现多个版本Python共存
2017/08/21 Python
Python实现提取XML内容并保存到Excel中的方法
2018/09/01 Python
Python UnboundLocalError和NameError错误根源案例解析
2018/10/31 Python
8种用Python实现线性回归的方法对比详解
2019/07/10 Python
使用Python的networkx绘制精美网络图教程
2019/11/21 Python
Selenium 滚动页面至元素可见的方法
2020/03/18 Python
Python文件操作及内置函数flush原理解析
2020/10/13 Python
浅谈CSS3中的变形功能-transform功能
2017/12/27 HTML / CSS
学校消防安全制度
2014/01/30 职场文书
实习协议书范本
2014/09/25 职场文书
浅谈Python数学建模之整数规划
2021/06/23 Python