Maison >développement back-end >tutoriel php >A quoi servent les variables mutables en php ?

A quoi servent les variables mutables en php ?

怪我咯
怪我咯original
2017-06-20 09:41:341445parcourir

什么是可变变量
PHP提供了一种其他类型的变量——可变变量。可变变量允许我们动态地改变一个变量的名称。
可以看到,在这方面,PHP具有非常大的自由度——所有的语言都允许改变变量的值,但是并没有太多的语言允许改变变量的类型,至于支持改变变量的名称的语言就更少了。
这个特性的工作原理是用一个变量的值作为另一个变量的名称。例如,我们可以设置$tireqty的值:

$varname = 'tireqty';

于是,我们就可以用

varname取代$tireqty。例如,我们可以设置$tireqty的值:

varname = 5;

这个代码等价于:

$tireqty = 5;

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

<form action="test.php" method="post">
<table border="0">
<tr bgcolor="#cccccc">
<td width="150">Item</td>
<td width="15">Quantity</td>
</tr>
<tr>
<td>Tires</td>
<td align="center"><input type="text" name="tireqty" size="3" maxlength="3" /></td>
</tr>
<tr>
<td>Oil</td>
<td align="center"><input type="text" name="oilqty" size="3" maxlength="3" /></td>
</tr>
<tr>
<td>Spark Plugs</td>
<td align="center"><input type="text" name="sparkqty" size="3" maxlength="3" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Submit Order" /></td>
</tr>
</table>
</form>

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

<?php
$oilqty = $_POST[&#39;oilqty&#39;];
$tireqty = $_POST[&#39;tireqty&#39;];
$sparkqty = $_POST[&#39;sparkqty&#39;];
echo "<p>Your order is as follows:</p>";
echo "<br />\$oilqty=".$oilqty;
echo "<br />\$tireqty=".$tireqty;
echo "<br />\$sparkqty=".$sparkqty;
?>

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

<?php
foreach ($_POST as $key => $value) {
$$key = $value;
}
echo "<p>Your order is as follows:</p>";
echo "<br />\$oilqty=".$oilqty;
echo "<br />\$tireqty=".$tireqty;
echo "<br />\$sparkqty=".$sparkqty;
?>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn