我有这个三元运算符,我试图将其转换为正常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;
}
我在这里做错了什么?
答案 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;
}