2013-07-11 73 views
0

我可能會問這個錯誤,忽略了一些非常簡單的事情,或者只是試圖去做不可能的事情。或者我可能會問錯誤的問題來從搜索中獲得我需要的答案,所以請接受我的道歉,如果我有錯過了答案的地方..如何修改變量名稱?

我想重命名一個會話變量..我有一個腳本,其中包含多個包括其他腳本,創建用戶的付款歷史數據表。從我的購物車發回的XML用於更新信息所來自的數據庫。這個腳本檢查會話變量(IE:$ _SESSION ['PAYMENT1'],$ _SESSION ['PAYMENT2']等)。如果有值,它會調用正確的腳本在先前的付款下添加一個表。所有這些都很好,但是當收到新的付款時,我想更新視圖以顯示最近的付款。它正在工作,但僅在註銷/重新登錄後。有沒有一種方法來動態地添加nnumber到名稱(IE:$ _SESSION ['付款*改變這個爲正確的數字*']) 我已經做了這個使用PHP代碼回顯到HTML代碼,但我需要做到這一點一個PHP腳本..我知道我可以用Java,但是不想使用它的權力「,以防他們關閉Java」..不是我知道任何人禁用Java了..

+0

與'$ _SESSION ['PAYMENT {$ var}'] =「某物」一樣;'? – Jon

+0

'$ _SESSION ['payment'] [] = $ xxxx'聽起來像是應該使用多維數組 – 2013-07-11 21:24:24

+0

您所指的語言被命名爲「Javascript」,而不是「Java」。 – Sven

回答

0

算$ _SESSION

$s=count($_SESSION); 

大小,每當在做一個新的支付只需要創建一個新的會話可變\

$_SESSION['payment'.$s+1]=""; 

希望這將解決這個問題。

+0

這似乎工作最好回答我問的問題!也就是說,在稍微深入一點之後,我認爲一個數組是正確的方法。所以這是我的臨時解決方案,因爲我正在研究如何實現這些函數的數組。謝謝大家的輸入! – Chris

0

你不應該做在PHP這種方式,而不是你應該如果您存儲數據使用foreach循環

在一個數組,你可以做到這一切是這樣的:

foreach ($_SESSION['PAYMENTS'] as &$payment) { 
    $payment += 5; 
} 

您可以將您的數據存儲在一個陣列中做$_SESSION['PAYMENTS'][0] = $myNewPayment

+0

如果您創建了一個參考文件,請在循環後立即「取消設置($ payment)」!否則會出現奇怪的副作用! – Sven

+0

@Sven隨時編輯我的帖子,感謝您的提示:) – Stephan

0

使用數組! $_SESSION['payment'][1]