«

»

十二 31 2005

Print this 文章

PHP中使用可变变量实现自动处理表单

写这么久的PHP,却一直没有用过可变变量,真是遗憾。今天晚上重温《PHP和MySQL WEB开发》基础部分,发现可变变量居然如此好用,真是痛恨自己忽略了这点。经过温习和再次实验,总结如下:

什么是可变变量?

PHP提供了一种其他类型的变量——可变变量。可变变量允许我们动态地改变一个变量的名称。
可以看到,在这方面,PHP具有非常大的自由度——所有的语言都允许改变变量的值,但是并没有太多的语言允许改变变量的类型,至于支持改变变量的名称的语言就更少了。

这个特性的工作原理是用一个变量的值作为另一个变量的名称。例如,我们可以设置$tireqty的值:
$varname = 'tireqty';
于是,我们就可以用$$varname取代$tireqty。例如,我们可以设置$tireqty的值:
$$varname = 5;
这个代码等价于:
$tireqty = 5;

在实际使用中,我们可以不用单独列出并使用每一个表单变量,我们可以使用一个循环语句和一个变量来自动处理它们。结合“for循环”,举例如下:
orderform.html的主要内容

Item Quantity
Tires
Oil
Spark Plugs


表单处理文件test.php
传统的中规中矩的写法

$oilqty = $_POST['oilqty'];
$tireqty = $_POST['tireqty'];
$sparkqty = $_POST['sparkqty'];
echo “

Your order is as follows:

“;
echo “
\$oilqty=”.$oilqty;
echo “
\$tireqty=”.$tireqty;
echo “
\$sparkqty=”.$sparkqty;
?>

如果orderform.html里有很多表单变量,可以想像上面的赋值语句将会很长,而我们采用可变变量就可以优化为如下非常简洁的代码:

foreach ($_POST as $key => $value) {
$$key = $value;
}
echo “

Your order is as follows:

“;
echo “
\$oilqty=”.$oilqty;
echo “
\$tireqty=”.$tireqty;
echo “
\$sparkqty=”.$sparkqty;
?>

Permanent link to this article: http://www.wardking.com/2005/12/php%E4%B8%AD%E4%BD%BF%E7%94%A8%E5%8F%AF%E5%8F%98%E5%8F%98%E9%87%8F%E5%AE%9E%E7%8E%B0%E8%87%AA%E5%8A%A8%E5%A4%84%E7%90%86%E8%A1%A8%E5%8D%95/

2 comments

  1. Lyychee

    哈哈,,,这个我早用得爽死了。。。。PHP就是灵活啊!!

  2. PLACE

    渠道网(低价注册公司)专业从事注册香港公司、海外公司注册、深圳公司注册、注册商标、注册国际书刊号及提供注册公司后企业融资等配套服务,渠道网并提供:无抵押无担保企业融资、项目融资、项目投资、企业形象资金、公司注册验资及全国打款、国际框架组建、品牌概念合作、品牌加盟、投资移民、技术移民、海外形象代言人、海外股东信托、代理记帐报税、企业营销咨询、企业合理避税、品牌规划、香港上市、新加坡上市、美国上市公关、GOOGLE左侧排名、网站建设、网站推广、收购大中型国有企业法人股等系列配套服务。并提供快速消费渠道信息,实现渠道信息共享!如何注册公司请立即咨询:罗鸿汇先生13510141316 http://www.place.net.cn渠道网,为你省钱!并诚全国各地代理商。

发表评论

电子邮件地址不会被公开。 必填项已被标记为 *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>