2017-11-04 78 views
6

Mesafe ölçmek için seçim seçeneklerinde iki A ve B gezegenini seçersiniz. Örneğinİki tane kullanabilirmiyim || ve PHP'de aynı ifadede bir &&?

:

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"; 
} 

Sen "Nova Terra Nova Iaponia OR Nova Terra Nova Iaponia dan" okuyun. Için = ve.

Bu gibi benzer:

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

Sen (o sözdizimsel olarak geçerli olduğunu) bu "yapabildiğini" ama mantık yanlış. Eğer hem gezegen A hem de gezegen B “Nova Terra” ise, 290 parsec yazan mesajı alırsınız. –

+0

Bu, başvurduğum sorun. Doğru mantık 4 ifadeye bölünür mü? Ama ben kodları kısaltmak ve ekonomikleştirmek istiyorum. –

cevap

4

Sadece istediğiniz sonucu almak için mantıksal operatörler verişi gerekir

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"; 
}