Hallo toson,
ich kann kein PHP aber ich würde das (egal in welcher Sprache) anders machen (ich hoffe man versteht meinen Pseudo-Code):
//Kommentar
boolean yesSet = $_POST["ka"] == "JA" || $_POST["sa"] == "JA"
|| $_POST["sa1"] == "JA" || $_POST["ka1"] == "JA"
|| $_POST["sa1a"] == "JA" || $_POST["sa2"] == "JA"
//Kommentar
boolean contactSet = ...
//Kommentar
boolean name1OK = ...
//Kommentar
boolean name2OK = ...
//Kommentar
if (yesSet && contactSet && (name1Ok || name2OK))
wahr
else
false
end if
In der Kürze liegt leider meinst auch nur kurze Zeit die Würze! Den Code hier verstehst Du auch noch in einem Jahr. Dein Monster IF vielleicht eher nicht.
Performance-mässig ist mein Code natürlich Deinem unterlegen da der Interpreter bei Dir optimieren wird und die Auswertung des Ifs abbricht sobald es nicht mehr wahr / falsch werden kann (wenn also das Ergebnis feststeht) aber lesbarer ist sicherlich das splitten in mehrere Teilkomponenten.
Ciao
Thomas Grötzner