数组与类使用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也是一个不能动态取名的特殊变量。
相关推荐
-
PHP可变变量学习小结
所谓可变变量,就是一个变量的变量名可以动态的设置和使用.语法形式是PHP的特殊语法,其他语言中少见 有时候使用可变变量名是很方便的.就是说,一个变量的变量名可以动态的设置和使用.一个普通的变量通过声明来设置,例如: <?php $a = 'hello'; ?> 一个可变变量获取了一个普通变量的值作为这个可变变量的变量名.在上面的例子中 hello 使用了两个美元符号($)以后,就可以作为一个可变变量的变量了.例如: <?php $$a = 'world'; ?> 这时,两个变量都被
-
PHP的可变变量名的使用方法分享
通常变量通过下面这样的语句来命名 : 复制代码 代码如下: <?php $a = 'hello'; ?> 可变变量名指的是使用一个变量的值作为这个变量的名称.在上面的例子中,通过使用两个$符号,你可以把hello设置成一个变量的名称,就像下面那样. 复制代码 代码如下: <?php $$a = 'world'; ?> 通过上面的两个语句,有两个变量被定义:变量$a,装的内容是"hello" 以及变量$hello,装的内容是 "world".
-
PHP变量的定义、可变变量、变量引用、销毁方法
复制代码 代码如下: <?php$long="big_long_variable_name";$$long="PHP"; /* 用存放在变量$long里的字符串作为新变量的变量名,等同于$big_long_variable_name="PHP"; */$short=& $big_long_variable_name; /* 取变量$big_long_variable_name的值赋给变量$short,此时$short的值为
-
php之可变变量的实例详解
php之可变变量的实例详解 前言: 最近在技术博客网站上偶然间浏览到一个新名词:"php的可变变量":然后就在网上查了下了解下,觉得用的还挺方便的,下面都是从网上代码copy到我本地环境运行后算是"拿来主义!" php手册上这样说: 有时候使用可变变量名是很方便的.就是说,一个变量的变量名可以动态的设置和使用.一个普通的变量通过声明来设置,例如: $a = 'hello'; $$a = 'world'; echo "$a ${$a}"; echo
-
数组与类使用PHP的可变变量名需要的注意的问题
有时候可变的变量名会给编程带来很大的方便.也就是说变量名可以被动态的命名和使用.通常变量通过下面这样的语句来命名 :$a = 'hello';可变变量名指的是使用一个变量的值作为这个变量的名称.在上面的例子中,通过使用两个$符号,你可以把hello设置成一个变量的名称,就像下面那样.$$a = 'world'; 通过上面的两个语句,有两个变量被定义:变量$a,装的内容是"hello" 以及变量$hello,装的内容是 "world". 于是,下面的语言:echo &
-
python实现可变变量名方法详解
如果要写一个程序,让x1为1,x2为2,然后直到x100为100,你会怎么做? 在C这种静态语言里,变量名这个标识符实际上会被编译器直接翻译成内存地址,所以除了手动设置每个变量的值以外,没办法做到这点.而Python这种动态语言则是可以做到的. 最容易想到的自然是eval,但是实际上根本不需要这种危险的东西,因为Python的变量名就是一个字典的key而已.要获取这个字典,直接用locals和globals函数即可. 因此这个程序可以这样实现: 代码如下: >>> names = loc
-
Java二维数组与动态数组ArrayList类详解
Java二维数组 Java 语言中提供的数组是用来存储固定大小的同类型元素. 1.二维数组初始化和声明 数组变量的声明,和创建数组可以用一条语句完成,如下所示: int a[][] = new int[2][3]; int[][] arr = {{1,2,3},{4,5,6},{7,8,9}}; 2.二维数组遍历 //遍历二维数组 public class Traverse_a_two_dimensional_array { public static void main(String[] ar
-
python类中的self和变量用法及说明
目录 1.self是什么 以上述代码I为例 2.self的使用场景 在类中,self的使用有下面3个场景 3.python的几种变量——按作用域分 4.self和变量的关系 具体的使用场景 5.一点补充 为实例绑定属性有两种方式 在python的类中会使用到“self”,本文主要是谈谈类中的self和变量的关系. 先看示例代码I. class Test(object): def __init__ (self, val1): self.val0 = val1 def fun1(self): pri
-
C#类中属性与成员变量的使用小结
属性实际上和成员变量没什么区别,属性代表类的某种特征, 让人更好理解而已. 使用中注意问题:1.属性名和变量名不能相同, 2.一般变量都是private,属性都是public的,属性用于给类外调用,变量限于类内使用,感觉封装性体现得要好些 3.属性必须和一个变量相联系,而这个变量必须要在类中定义.如果不定义,用成如下方法: 复制代码 代码如下: public int b //定义一个属性b { get { return b; } set { b = val
-
利用反射获取Java类中的静态变量名及变量值的简单实例
JAVA可以通过反射获取成员变量和静态变量的名称,局部变量就不太可能拿到了. public class Test { public static void main(String[] args) throws Exception { // TODO Auto-generated method stub //获取所有变量的值 Class clazz = Class.forName("com.qianmingxs.ScoreTable"); Field[] fields = clazz.g
-
PHP数组操作类实例
本文实例讲述了PHP数组操作类.分享给大家供大家参考.具体如下: class ArrayHelper{ /** * 从数组中删除空白的元素(包括只有空白字符的元素) * * 用法: * @code php * $arr = array('', 'test', ' '); * ArrayHelper::removeEmpty($arr); * * dump($arr); * // 输出结果中将只有 'test' * @endcode * * @param array $arr 要处理的数组 * @
随机推荐
- 十个Python程序员易犯的错误
- flex导出excel具体实现
- PowerShell函数中的开关参数介绍和创建实例
- ASP.Net下载大文件的实现方法
- JS实现留言板功能
- php对称加密算法示例
- Thinkphp实现自动验证和自动完成
- C语言菜鸟基础教程之常量和变量
- Docker实践--部署Nodejs应用
- Android 大文件上传时处理上传进度问题小结
- 让Linux下的cron以秒为单位执行shell脚本的3种方法
- 用Javscript实现表单复选框的全选功能
- 深入解读JavaScript中的Iterator和for-of循环
- Javascript的表单验证长度
- 设计模式中的观察者模式在Ruby编程中的运用实例解析
- js日期、星座的级联显示代码
- 菜鸟学习JavaScript小实验之函数引用
- jQuery实现 RadioButton做必选校验功能
- 最新Win2003操作系统技巧十例
- CentOS 5 上安装yum的方法