欧美亚洲中文,在线国自产视频,欧洲一区在线观看视频,亚洲综合中文字幕在线观看

      1. <dfn id="rfwes"></dfn>
          <object id="rfwes"></object>
        1. 站長(zhǎng)資訊網(wǎng)
          最全最豐富的資訊網(wǎng)站

          PHP如何動(dòng)態(tài)設(shè)置變量的名稱

          在上一篇文章中我們簡(jiǎn)單了解了什么是變量,變量的聲明,介紹了變量賦值的兩種方式,有需要的可以點(diǎn)擊鏈接查看→《你知道php變量有哪些設(shè)置值的方式嗎》。這次我們繼續(xù)來(lái)聊聊變量,介紹一下如果動(dòng)態(tài)的設(shè)置(改變)一個(gè)變量的名稱。

          我們一般操作變量,都是改變變量的值(這是所有的語(yǔ)言都支持的),有時(shí)會(huì)改變一下變量的類型;但很少(幾乎沒(méi)有)進(jìn)行改變變量名稱的操作的(支持這一操作的語(yǔ)言也很少)。但在PHP中可以,它提供了一個(gè)特殊的其他類型的變量——可變變量,可以允許我們動(dòng)態(tài)的設(shè)置(修改)一個(gè)變量的名稱。

          我們來(lái)看看下面這個(gè)示例:

          <?php $str='trans';                                                  //聲明變量$str $trans='hello!';                                            //聲明變量$trans echo $str;                                                     //輸出變量$str echo "<br/>"; echo $$str;                                                 //通過(guò)可變變量輸出$trans的值 ?>

          可以看出,我們定義兩個(gè)變量$str$trans,首先輸出變量$str的值,然后使用可變變量來(lái)改變變量$str的名稱,輸出改變名稱后的變量值。看看輸出結(jié)果:

          trans hello!

          那么具體什么是可變變量呢?

          所謂“可變變量”,就是一個(gè)變量以另外一個(gè)變量的值作為變量名。利用這一特性我們可以動(dòng)態(tài)的設(shè)置和使用一個(gè)變量的變量名。例如,我們可以設(shè)置$tireqty的值:

          $varname = 'tireqty';

          于是,我們就可以用varname取代$tireqty。例如,我們可以設(shè)置$tireqty的值:

          varname = 5;

          這個(gè)代碼等價(jià)于:

          $tireqty = 5;

          而聲明可變變量的方法非常簡(jiǎn)單,只需要在變量名前加上至少兩個(gè)“$”符號(hào)即可。

          <?php $demo = 'string'; $$demo = 'hello!'; echo $string; ?>

          輸出結(jié)果:

          hello!

          利用可變變量可以動(dòng)態(tài)設(shè)置變量名稱的特性,我們可以將可變變量應(yīng)用在表單處理中。

          在使用表單獲取數(shù)據(jù)時(shí),往往不會(huì)只有一個(gè)數(shù)據(jù)

          <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>

          因此處理表單數(shù)據(jù)時(shí),也不會(huì)只有一個(gè)表單變量。而傳統(tǒng)的中規(guī)中矩的寫(xiě)法是下面這樣的,表單變量越多,賦值語(yǔ)句將會(huì)很長(zhǎng)。

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

          我們利用可變變量來(lái)優(yōu)化,使用一個(gè)循環(huán)語(yǔ)句和一個(gè)變量來(lái)自動(dòng)處理它們

          <?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; ?>

          代碼是不是簡(jiǎn)潔了不少!

          可變變量也可以用于數(shù)組。

          <?php $demo = 'hello'; $test = 'world'; $arr = array('demo', 'test'); echo ${$arr[0]}.'<br>'.${$arr[1]}.'<br>'; ?>

          輸出結(jié)果:

          hello world

          分析:${$arr[0]}${$arr[1]}為什么中間要用“{ }”將數(shù)組變量包裹住呢?

          因?yàn)?,如果你?xiě)下 $$a[1] 時(shí),解析器需要知道你是想要 $a[1] 作為一個(gè)變量呢,還是想要把$$a當(dāng)成變量、[1]指的是這個(gè)變量的索引。

          解決這個(gè)問(wèn)題的語(yǔ)法是使用“{ }”將變量包裹,對(duì)應(yīng)的語(yǔ)法是:第一種情況使用${$a[1]},第二種情況使用${$a}[1]

          好了就說(shuō)到這里了,有其他想知道的,可以點(diǎn)擊這個(gè)哦。→ →php視頻教程

          最后給大家推薦一個(gè)PHP數(shù)組的免費(fèi)視頻教程:從0開(kāi)始進(jìn)入PHP的世界,快來(lái)學(xué)習(xí)吧!

          贊(0)
          分享到: 更多 (0)
          網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)