PHP IF声明没有反应我认为它应该如何?

时间:2011-10-01 18:23:17

标签: php if-statement

我在使用以下php语句时遇到了一些麻烦:

if (!userIsLoggedIn()) {
    $prPrice = (empty($prPrice2)) ? $prPrice1 : $prPrice1;
} else {
    $prPrice = (empty($prPrice2)) ? $prPrice1 : $prPrice2;
}

以下是两个产品的示例:

product 1 -> price1 = 1.00
product 1 -> price2 = 0.00
product 2 -> price1 = 1.00
product 2 -> price2 = 0.80

如果用户未登录我们的网站(userIsLoggedIn函数)那么他们应该只能看到产品价格1,无论产品价格是否存在。

另一方面,当用户登录我们的网站时。那么他们应该能够看到它存在的产品的价格2,或者他们只会看到价格。

现在我的代码问题是:

用户未登录,无论商品是否设置了price2,他们都会看到price1。

当用户登录时,他们会看到价格为2的商品的价格2,但这是奇怪的部分,对于没有价格2的商品,它只显示 0 ,其中它应该显示price1。

有没有人对所提到的代码产生这种效果的原因有任何意见?

我可以根据要求提供与userIsLoggedIn函数相关的更多代码。

感谢任何想要帮助的人!!

2 个答案:

答案 0 :(得分:1)

代码正常运行 - 产品1的price2在调用true时不应返回empty(),因为它的值为0.00。也许你应该检查一个值是否为0?

答案 1 :(得分:1)

您的代码对我来说很好。您可以使用var_dump()验证变量是否包含您期望的值。

此外,您的代码可能会缩短。但是,如果你必须检查很多价格,可能不建议在每次检查中执行userIsLoggedIn(),而是将结果保存在变量中。

$prPrice = ($prPrice2 != 0 && userIsLoggedIn()) ? $prPrice2 : $prPrice1;