在我最近做的一個專案中,我發現了一個新的概念,關於在PHP中使用變數的變數。在我的程式中,我需要在一個頁面同時更新多個記錄,在我經過相當長時間的痛苦思索之後,腦海中偶然地閃現出了變量的變量(variable variable)這一概念,所有的困惑就一掃而光了。
<b>介紹</b>
什麼叫作變數的變數?根據PHP手冊,變數的變數是指取得一個變數的值並將它作為另一個變數的變數名稱。這表述顯得相當的直接,容易和那些在一個句子中使用「變數」這個詞弄混淆。給一個簡單的例子,你定義一個變數--- x 等於this --- 然後定義一個變數的變量,意味著你把x 的值當作新變數的名,在這個例子中,這個新變數的值是is cake。用PHP來表示如下:
<?php
$x = "this";
$$x = "is cake";
?>
這個符號變數是在PHP中對$$的變數的表示方法。現在我們可以用兩種不同的方式來引用這兩個變數 $x 和 $$x 了。
<?php
echo "$x ${$x}";
?>
<?php
echo "$x $this";
?>
上面兩段程式都會輸出上面兩段程式都將輸出上面兩段程式。請注意,在echo語句中$$x被寫成${$x},這是讓PHP知道你要輸出的是變數的變數而不是一個$字元與$x變數。
你是不是仍很迷惑?哦,也許吧,你想要一些更深入、更有用的例子?下一節,我將向你展示怎樣用變數的變數在一個頁面編輯多筆記錄的。
<b>範例</b>
假設你已有一個MySQL資料庫,保存了對一些感興趣的站點的鏈接,庫中有一個表submissions,字段如下:
SubmissionID 現在你想顯示在表中所有的已創建但沒有被認可的鏈接,這個編輯的頁面應可以更正一些輸入時的錯誤,並用適當的單選按鈕來為每一個記錄設置是否允許(Approved),然後一次把更新後的記錄都提交到表中。
首先,當你從資料庫中提取所有的記錄並顯示出來時,你必須為每一個記錄設定一個唯一的名字,這將讓我們在提交時可以循環地辯別出各個記錄的值。程式碼如下:
<?php
//初始化變數的記數器
$index = 0;
$index_count = 0;
echo "<form n";
echo "<tr><td><b>Posted By</b></td><td><b>Link</b></td>".
感覺您的閱讀,想想取得更多的相關內容請關注PHP中文網(www.php.cn)!