2012-04-06 121 views
0

你好,會話問題在PHP

if ($_SESSION["selCurrency"] = "USD") { $_SESSION["currencyidx"] = 1; } 
    if ($_SESSION["selCurrency"] = "CAD") { $_SESSION["currencyidx"] = 2; } 
    if ($_SESSION["selCurrency"] = "EUR") { $_SESSION["currencyidx"] = 4; } 

不管我做什麼,我

$ _SESSION [ 「currencyidx」] 總是在上述行的最後一個。我一直在搞這個一個小時,我一定錯過了一些完全荒謬的事情,請把我的眼睛解開一個人?

謝謝,

回答

2

您正在使用分配(=),而不是比較(==)。修復它,它會工作。

+0

耶穌這是當你知道它的時間睡覺笑。非常感謝! – Sherif 2012-04-06 23:33:03

+0

如果您使用'switch'代替,則可以避免此問題並提高性能。您甚至可以定義一個將貨幣代碼映射到其ID的數組,並選擇正確的數字。在PHP 5.4中:'$ _SESSION ['currencyidx'] = ['USD'=> 1,'CAD'=> 2,'EUR'=> 4] [$ _ SESSION ['selCurrency']];' – 2012-04-06 23:35:17

0

你的if條件是使用單個=當它應該是==。您正在設置$ _SESSION [「selCurrency」]的值而不是檢查它。它應該是。

if ($_SESSION["selCurrency"] == "USD") { $_SESSION["currencyidx"] = 1; } 
if ($_SESSION["selCurrency"] == "CAD") { $_SESSION["currencyidx"] = 2; } 
if ($_SESSION["selCurrency"] == "EUR") { $_SESSION["currencyidx"] = 4; } 
0
if ($_SESSION["selCurrency"] == "USD") { $_SESSION["currencyidx"] = 1; } 
    if ($_SESSION["selCurrency"] == "CAD") { $_SESSION["currencyidx"] = 2; } 
    if ($_SESSION["selCurrency"] == "EUR") { $_SESSION["currencyidx"] = 4; } 

通知的==,而不是你的=

0

應該

if ($_SESSION["selCurrency"] == "USD") { $_SESSION["currencyidx"] = 1; } 
    if ($_SESSION["selCurrency"] == "CAD") { $_SESSION["currencyidx"] = 2; } 
    if ($_SESSION["selCurrency"] == "EUR") { $_SESSION["currencyidx"] = 4; } 

=你分配,不進行比較。與==,你正在比較。

0

使用==來比較

if ($_SESSION["selCurrency"] == "USD") { $_SESSION["currencyidx"] = 1; } 
    if ($_SESSION["selCurrency"] == "CAD") { $_SESSION["currencyidx"] = 2; } 
    if ($_SESSION["selCurrency"] == "EUR") { $_SESSION["currencyidx"] = 4; }