2016-06-08 4 views
0

У меня есть этот тройной оператор, который я пытаюсь понять, преобразовав его в нормальный 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; 
} 

Что я я делаю неправильно здесь?

+2

Поступая '$ countDinner [$ invitation-> getDinner() -> getId()] = ""; ', вы создаете условие, которое означает' if (isset ($ countDinner [$ invite-> getDinner() -> getId()])) {'всегда будет true ... вы гарантируете, что он создан до того, как будет проверен ли он. ... избавиться от '$ countDinner [$ in vitation-> getDinner() -> getId()] = ""; 'строка –

+0

ах, спасибо, что имеет смысл – Saadia

ответ

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()]++; 
+0

Спасибо за объяснение – Saadia

0

Тройная просто могут быть переведены на

if(isset($countDinner[$invitation->getDinner()->getId()])) 
{ 
    $countDinner[$invitation->getDinner()->getId()] = $countDinner[$invitation->getDinner()->getId()] + 1; 
} 
else 
{ 
    $countDinner[$invitation->getDinner()->getId()] = 1; 
} 
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; 
} 
Смежные вопросы