【发布时间】:2011-10-01 18:23:16
【问题描述】:
我对下面的 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 函数),那么无论产品 price2 是否存在,他们都应该只能看到产品 price1。
另一方面,当用户登录我们的网站时。然后他们应该能够看到它存在的产品的 price2,或者他们只会看到 price1。
现在我的代码问题是这样的:
用户未登录,无论项目是否设置了 price2,他们都会看到 price1。
当用户登录后,他们会看到价格为 2 的商品的价格 2,但这是奇怪的部分,对于没有价格 2 的商品,它只是显示 0,其中它应该显示 price1。
是否有人对上述代码产生这种效果的原因有任何意见?
我可以根据要求提供与 userIsLoggedIn 函数相关的更多代码。
感谢任何愿意提供帮助的人!
【问题讨论】:
-
我相信你的第二行可以缩短为
$prPrice = $prPrice1; -
$prPrice2是如何设置的? -
$prPrice = ($prPrice2 != 0 && userIsLoggedIn()) ? $prPrice2:$prPrice1。那应该更短。
-
你能把剩下的代码贴出来吗?您是否还可以验证变量是否具有上述值,不仅在数据库中,而且在 php 脚本中?
-
那么在 if 之前放置一个 price1 和 price2 的 var_dump 就足够了,以验证这些值是否符合您的预期,因为如果它们是您发布的代码应该可以正常工作。
标签: php if-statement