PHP的可变变量
先看下列代码以及执行结果。
<?php
$v1 ="";
$flute ="v1";
$$flute ="Apple";
echo ("Thereis an ${$flute}.<br />");
echo ("Thereis an $v1.<br />");
?>
程序运行结果如下:
There is an Apple.
There is an Apple.
从上面看出,变量$flute的初始值等于v1,在该变量前再加个$,然后对其进行赋值,则相当于给变量$v1赋值。而从结果可以看出,最后$v1的值等于${flute}。
实战情况举例如下:
1、获取传入的参数
假设一个场景:
有两个通过POST传递的参数:v1和v2;若在程序中接受这两个参数值需要些如下代码:
$v1 = $_POST["v1"];
$v2 = $_POST["v2"];
若需要接收20个或者更多的参数时,这段代码要写很长。那么有什么方便的方式呢?
我们可以用下列代码来实现:
foreach($_POST as $key=>$value){
$$key=$value;
}
上述代码实现了遍历所有POST传入的参数,并将值传递给与key相同的变量名。
2、动态指定对象的属性
如下程序回显属性信息时,属性名称是由传入的参数$attr决定的。
<?php
classstudent{
public $name = "David";
public $sex = "male";
}
functionshow($attr){
$people = new student();
echo ($people->$attr . "<br/>");
}
show("name");
show("sex");
?>
程序执行结果如下:
David
male
先看下列代码以及执行结果。
<?php
?>
程序运行结果如下:
There is an Apple.
There is an Apple.
从上面看出,变量$flute的初始值等于v1,在该变量前再加个$,然后对其进行赋值,则相当于给变量$v1赋值。而从结果可以看出,最后$v1的值等于${flute}。
实战情况举例如下:
1、获取传入的参数
假设一个场景:
有两个通过POST传递的参数:v1和v2;若在程序中接受这两个参数值需要些如下代码:
$v1 = $_POST["v1"];
$v2 = $_POST["v2"];
若需要接收20个或者更多的参数时,这段代码要写很长。那么有什么方便的方式呢?
我们可以用下列代码来实现:
foreach($_POST as $key=>$value){
}
上述代码实现了遍历所有POST传入的参数,并将值传递给与key相同的变量名。
2、动态指定对象的属性
如下程序回显属性信息时,属性名称是由传入的参数$attr决定的。
<?php
?>
程序执行结果如下:
David
male