2012-04-06 119 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; }