程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 變量的變量,PHP和你

變量的變量,PHP和你

編輯:關於PHP編程

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

介紹

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

<?php

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

?>

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

<?php

echo "$x ${$x}";

?>

<?php

echo "$x $this";

?>

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

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

例子

假設你已有一個MySQL數據庫,保存了對一些感愛好的站點的鏈接,庫中有一個表submissions,字段如下:

SubmissionID
PostedBy
Link
Description
Approved

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

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

<?php

//初始化變量的記數器

$index = 0;
$index_count = 0;

echo "<form method=post action=$PHP_SELF>n";
echo "<table>n";
echo "<tr><td><b>Posted By</b></td><td><b>Link</b></td>".
"<td><b>Description</b></td><td><b>Approved</b></td></tr>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;


//這一段將在屏幕上顯示值,以每行一條記錄。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved