2015-06-10 194 views
0

我有一個大的數據表格。我喜歡動態設置數據庫變量 在這種情況下提交的表單輸入值是99php提取函數獲取變量值

$nbs = array(); 
    foreach ($rows as $r) { 
     $dec1 = 'q' . $r["sort"] . 'z1'; 
     $dec2 = '(int) $_POST["q' . $r["sort"] . 'z1"]'; 
     $nbs[$dec1] = $dec2; 
         } 

extract($nbs); 

這將創建下列內容:

$q1000z1 = (int) $_POST[q1000z1]; 
var_dump($q1000z1); 

輸出:字符串(27)「(INT)$ _ POST [ 「q100000z1」]」

,但如果我寫的代碼

 $q1000z1 = (int) $_POST[q1000z1]; 
     var_dump($q1000z1); 

輸出s:99

我喜歡得到99,但是我的提取方法有些問題,因爲它沒有被引用到表單輸入值?有什麼建議麼?

回答

1

請勿將$_POST[…]表達式放入字符串中。只要做到:

$dec2 = (int) $_POST[$dec1]; 

你已經安裝了數組索引$dec1那裏。所以只需使用它來進行字面數組訪問。之後$dec2包含所需的$ _POST輸入值。

(現在你一般不希望做的是使用extract()那裏。那纔有意義展開小型的應用陣列。對於較大的結構,只是不停,並與$nbs陣列工作,而不是。)

+0

是的,這是爲了快速響應。 –

+0

@ErikvanBerkum你可以接受答案,如果它可以幫助你 –