我遇到了一个简单的PHP代码问题.
我正在使用2个产品定价层.这些是基于用户是否已登录.
如果用户未登录,则第一个价格为空; 然后价格是price1.如果没有,那就是price1.
这完全没问题.
如果用户已登录,则第一个价格为空; 然后价格是price1.如果没有,那就是price2.
这是它应该工作的方式,但实际发生的是:
如果用户已登录,则第一个价格为空; 那么价格是0.如果没有,那就是price2.
为什么我的代码产生这种效果?
if (!userIsLoggedIn())
{
if (empty($prPrice2))
{
$prPrice = $prPrice1;
}
else
{
$prPrice = $prPrice1;
}
} else if (userIsLoggedIn())
{
if (empty($prPrice2))
{
$prPrice = $prPrice1;
}
else
{
$prPrice = $prPrice2;
}
} else
{
$prPrice = $prPrice1;
}
Run Code Online (Sandbox Code Playgroud)
如果有人有任何建议可以帮助我解决这个问题,我将不胜感激.
谢谢!
@Pekka,它相当复杂.我只是希望这种情况发生:
product 1 -> price 1 = 1.00
product 1 -> price 2 = 0.00
product 2 -> price 1 = 1.00
product 2 -> price 2 = 0.80
Run Code Online (Sandbox Code Playgroud)
如果用户已登录但price2字段为空,则price变量将为price1.如果没有,那么它将是价格2.
另一方面,如果用户未登录但price2字段为空,则price变量将为price1.如果没有,那么它将是价格1.
你解释规则的方式有点令人困惑.您应该能够修改以下代码以适合:
if (userIsLoggedIn()) {
$prPrice = !empty($prPrice2) ? $prPrice2 : $prPrice1;
} else {
$prPrice = !empty($prPrice1) ? $prPrice1 : $prPrice2;
}
Run Code Online (Sandbox Code Playgroud)