数组与类使用PHP的可变变量名需要的注意的问题
2015-01-24信息快讯网
本篇文章是对数组与类使用PHP的可变变量名需要的注意的问题进行了详细的分析介绍,需要的朋友参考下
有时候可变的变量名会给编程带来很大的方便。也就是说变量名可以被动态的命名和使用。通常变量通过下面这样的语句来命名 :$a = 'hello';
可变变量名指的是使用一个变量的值作为这个变量的名称。在上面的例子中,通过使用两个$符号,你可以把hello设置成一个变量的名称,就像下面那样。
$$a = 'world';
通过上面的两个语句,有两个变量被定义:变量$a,装的内容是”hello” 以及变量$hello,装的内容是 “world”。 于是,下面的语言:
echo "$a ${$a}";
跟下面的语句的输出完全一致:
echo "$a $hello";
它们都输出:hello world。
但是为了使用数组的可变变量名,你需要解决一个歧义问题。就是,如果你写$$a[1],解析器需要明白究竟你的意思是要把$a[1]当成一个变量,还是要 把$$a当成变量、[1]指的是这个变量的索引。解决这个歧义问题的语法是:第一种情况使用${$a[1]},第二种情况使用${$a}[1]。
类属性也可以通过可变属性名来访问。可变属性名从产生调用所在的变量的访问范围内获取。例如,如果你的表达式是这样的:$foo->$bar,那么运 行时将会在本地变量范围内寻找变量$bar,它的值将会做为$foo对象的一个属性名。如果$bar是个数组也可以使用。
<?php class foo { var $bar = 'I am bar.'; } $foo = new foo(); $bar = 'bar'; $baz = array('foo', 'bar', 'baz', 'quux'); echo $foo->$bar . "\n"; echo $foo->$baz[1] . "\n"; ?>
上面的例子将会输出下面的结果:
I am bar. I am bar.
请注意:可变变量名不能用于PHP函数和类里的超级全局数组变量上。变量$this也是一个不能动态取名的特殊变量。
preg_match_all使用心得分享
php使用curl检测网页是否被百度收录的示例分享
php使用百度翻译api示例分享
php缓冲 output_buffering和ob_start使用介绍
PHP内核探索:变量概述
PHP内核探索:变量存储与类型使用说明
php中自定义函数dump查看数组信息类似var_dump
php计算数组不为空元素个数的方法
5种PHP创建数组的实例代码分享
一个PHP二维数组排序的函数分享
php生成数组的使用示例 php全组合算法
PHP面向对象之旅:深入理解static变量与方法
浅谈PHP变量作用域以及地址引用问题
PHP变量的定义、可变变量、变量引用、销毁方法
解析PHP可变函数的经典用法
有关PHP性能优化的介绍
解析使用ThinkPHP应该掌握的调试手段
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
php Xdebug的安装与使用详解
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
使用array mutisort 实现按某字段对数据排序
php unset全局变量运用问题的深入解析
PHP大小写问题:函数名和类名不区分,变量名区分
PHP可变函数的使用详解
判断php数组是否为索引数组的实现方法
深入PHP变量存储的详解
如何判断php数组的维度
利用php递归实现无限分类 格式化数组的详解
探讨php中遍历二维数组的几种方法详解
基于PHP遍历数组的方法汇总分析
解析PHP中如何将数组变量写入文件
php全局变量和类配合使用深刻理解