将三元运算符转换为if else

时间:2016-06-08 11:24:46

标签: php ternary-operator

我有这个三元运算符,我试图将其转换为正常ifelse

$countDinner[$invitation->getDinner()->getId()] = isset($countDinner[$invitation->getDinner()->getId()]) ? $countDinner[$invitation->getDinner()->getId()] + 1 : 1;

但我没有得到正确的结果

$countDinner[$invitation->getDinner()->getId()] = "";
if (isset($countDinner[$invitation->getDinner()->getId()])) {
    $countDinner[$invitation->getDinner()->getId()] = $countDinner[$invitation->getDinner()->getId()] + 1;
}else{
    $countDinner[$invitation->getDinner()->getId()] = 1;
}

我在这里做错了什么?

3 个答案:

答案 0 :(得分:1)

在做

$countDinner[$invitation->getDinner()->getId()] = "";

您正在创建一个意味着

的条件
if (isset($countDinner[$invitation->getDinner()->getId()])) {

永远都是真的....你在确定它是否存在之前确保它是否存在,所以(当然)它将永远存在。

摆脱

$countDinner[$invitation->getDinner()->getId()] = "";

线

您还可以简化

$countDinner[$invitation->getDinner()->getId()] = $countDinner[$invitation->getDinner()->getId()] + 1;

$countDinner[$invitation->getDinner()->getId()]++;

答案 1 :(得分:0)

三元可以简单地翻译成

if(isset($countDinner[$invitation->getDinner()->getId()]))
{
    $countDinner[$invitation->getDinner()->getId()] = $countDinner[$invitation->getDinner()->getId()] + 1;
}
else
{
    $countDinner[$invitation->getDinner()->getId()] = 1;
}

答案 2 :(得分:0)

删除第一行

$countDinner[$invitation->getDinner()->getId()] = "";

正确的方法是

if (isset($countDinner[$invitation->getDinner()->getId()])) {
    $countDinner[$invitation->getDinner()->getId()] = $countDinner[$invitation->getDinner()->getId()] + 1;
}else{
    $countDinner[$invitation->getDinner()->getId()] = 1;
}