變數的變數,PHP和你_PHP教程

來源:互聯網
上載者:User
在我最近做的一個項目中,我發現了一個新的概念,關於在PHP中使用變數的變數。在我的程式中,我需要在一個頁面同時更新多個記錄,在我經過相當長時間的痛苦思考之後,腦海中偶然地閃現出了變數的變數(variable variable)這一概念,所有的困惑就一掃而光了。

介紹

什麼叫作變數的變數?根據PHP手冊,變數的變數是指取得一個變數的值並把它作為另一個變數的變數名。這表述顯得相當的直接,輕易和那些在一個句子中使用“變數”這個詞弄混淆。給一個簡單的例子,你定義一個變數 --- x 等於 this --- 然後定義一個變數的變數,意味著你把 x 的值作為新變數的名,在這個例子中,這個新變數的值是 is cake。用PHP來表示如下:


$x = "this";
$$x = "is cake";

?>

這個符號$$是在PHP中對變數的變數的表示方法。現在我們可以用兩種不同的方式來引用這兩個變數 $x 和 $$x 了。


echo "$x ${$x}";

?>


echo "$x $this";

?>

上面兩段程式都將輸出 this is cake。注重,在echo語句中$$x被寫成${$x},這是讓PHP知道你要輸出的是變數的變數而不是一個$字元與$x變數。

你是不是仍很迷惑?哦,也許吧,你想要一些更深入更有用的例子?下一節,我將向你展示怎樣用變數的變數在一個頁面編輯多條記錄的。

例子

假設你已有一個MySQL資料庫,儲存了對一些感愛好的網站的連結,庫中有一個表submissions,欄位如下:

SubmissionID
PostedBy
Link
Description
Approved

現在你想顯示在表中所有的已建立但沒有被認可的連結,這個編輯的頁面應可以更正一些輸入時的錯誤,並用適當的選項按鈕來為每一個記錄設定是否答應(Approved),然後一次把更新後的記錄都提交到表中。

首先,當你從資料庫出提取所有的記錄並顯示出來時,你必須為每一個記錄設定一個唯一的名字,這將讓我們在提交時可以迴圈地辯別出各個記錄的值。代碼如下:


//初始設定變數的記數器

$index = 0;
$index_count = 0;

echo "n";
echo "




















http://www.bkjia.com/PHPjc/631385.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/631385.htmlTechArticle在我最近做的一個項目中,我發現了一個新的概念,關於在PHP中使用變數的變數。在我的程式中,我需要在一個頁面同時更新多個記錄,在...

  • n";echo " "." n";/*********假定我們已從資料庫中檢索出記錄到一個數組中 $myrow = mysql_fetch_array().下面的 do...while 迴圈根據名字為每一個$xstr變數分配了一個值並且串連了$index 的值到結尾,以0為開始。這樣,這個迴圈的第一次時,$SubmissionIDStr 的值就是 SubmissionID0 ,第二次就是 SubmissionID1 ,以此類推。***********/do {$SubmissionIDStr = SubmissionID.$index;$PostedByStr = PostedBy.$index;$LinkStr = Link.$index;$DescriptionStr = Description.$index;$ApprovedStr = Aprroved.$index;//這一段將在螢幕上顯示值,以每行一條記錄。
    Posted By LinkDescription Approved

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.