2017-11-04 68 views
6

Wybieracie dwie planety A i B w opcjach selektora, aby zmierzyć odległość.Czy mogę użyć dwóch || i jedno && w tej samej instrukcji if w PHP?

Na przykład:

if (($planetA == "Nova Terra" || $planetB == "Nova Iaponia") && ($planetA == "Nova Iaponia" || $planetB == "Nova Terra")) 
{ 
    echo "From $planetA to $planet B: 290 parsecs"; 
} 

else if (($planetA == "Nova Terra" || $planetB == "Novo Mars") && ($planetA == "Novo Mars" || $planetB == "Nova Terra")) 
{ 
    echo "From $planetA to $planet B: 230 parsecs"; 
} 

czytać "od Nova Terra Nova Iaponia OR z Nowej Iaponia do Nowej Ziemi". To = i.

Przypomina to lubią:

if ($planetA == "Nova Terra" || $planetB == "Nova Iaponia") 
{ 
    echo "From $planetA to $planet B: 290 parsecs"; 
} 

else if ($planetA == "Nova Iaponia" || $planetB == "Nova Terra") 
{ 
    echo "From $planetA to $planet B: 290 parsecs"; 
} 

else if ($planetA == "Nova Terra" || $planetB == "Novo Mars") 
{ 
    echo "From $planetA to $planet B: 230 parsecs"; 
} 

else if ($planetA == "Novo Mars" || $planetB == "Nova Terra") 
{ 
    echo "From $planetA to $planet B: 230 parsecs"; 
} 
+1

You "może" to zrobić (jest składniowo poprawny), ale logika jest zła. Jeśli obie planety A i planB to "Nova Terra", otrzymujesz komunikat o wartości 290 parseków. –

+0

To jest problem, który mam na myśli. Czy właściwą logiką byłoby podzielić na 4 zdania? Ale chcę skrócić i zaoszczędzić kody. –

Odpowiedz

4

Wystarczy zamienić swoje operatory logiczne, aby doprowadzić chcesz

if (($planetA == "Nova Terra" && $planetB == "Nova Iaponia") || ($planetA == "Nova Iaponia" && $planetB == "Nova Terra")) 
{ 
    echo "From $planetA to $planet B: 290 parsecs"; 
} 

else if (($planetA == "Nova Terra" && $planetB == "Novo Mars") || ($planetA == "Novo Mars" && $planetB == "Nova Terra")) 
{ 
    echo "From $planetA to $planet B: 230 parsecs"; 
}