在PHP中,有一个官方称为“Variable Variables”的功能,其中可以分配变量变量.变量变量将一个变量的值作为新变量的名称!例如:
$name='Joe';
$$name='Smith'; // could also be written as ${$name}='Smith'
第一个变量$name包含值’Joe’,而第二个变量名为$Joe,值为’Smith’.考虑到PHP变量区分大小写!
我从来没有使用过这个功能,也没有看到它的目的.有人可以向我解释一下这个功能可以作为一种好的做法被利用吗?
解决方法:
有时我们需要非常灵活的软件,并且我们可以进行参数化.当然,你必须准备好整个事情,但其中一部分来自用户输入,我们没有时间仅仅因为用户需要新输入而更改软件.
使用变量变量和变量函数,您可以解决在没有它们的情况下难以解决的问题.
快速示例:
没有变量:
$comment = new stdClass(); // Create an object
$comment->name = sanitize_value($array['name']);
$comment->email = sanitize_values($array['email']);
$comment->url = sanitize_values($array['url']);
$comment->comment_text = sanitize_values($array['comment_text']);
随变量变量
$comment = new stdClass(); // Create a new object
foreach( $array as $key=>$val )
{
$comment->$key = sanitize_values($val);
}