Hallo,
ich habe einen PHP-Code geschrieben, der verschiedene Bedingungen prüfen soll und dann bestimmte Textbausteine (s. unten, FehlerFach, FehlerTag, etc.) ausgeben soll.
In dem geschriebenen Code habe ich das Problem, dass immer nur ein Textbaustein (der der ersten zutreffenden Bedingung) angezeigt wird, auch wenn mehrere Bedingungen zutreffen. Ich gehe davon aus, dass das daran liegt, dass immer aufgehört wird zu prüfen, sobald eine Bedingung zutrifft.
Ich hätte allerdings gerne, dass wenn Bedingungen 1 und 4 beide zutreffen, dass dann auch beide Textbausteine angezeigt werden. Theoretisch könnte ich die späteren Bedingungen jeweils noch mit else verschachtelt in die vorherigen Bedingungen mit aufnehmen. Das wird allerdings sehr lang und kompliziert. Gibt es noch eine andere, leichtere Möglichkeit?
Hier folgt mein Code:
if ($failr0s1_1a1 || $failr0s1_1a2 || $failr0s1_1a3 || $failr0s1_1a4) {
if (time() < $timeout) {
if (!isset($rPGr0s1)) {
$rPGr0s1 = true;
registerVariable($rPGr0s1);
put('F001_01', 0);
repeatPage('FehlerFach');
}
else {
repeatPage('FehlerFach');
}
}
else {
put('F001_02', 0);
}
}
elseif ($failr0s1_2a1 || $failr0s1_2a2 || $failr0s1_2a3 || $failr0s1_2a4) {
if (time() < $timeout) {
if (!isset($rPGr0s1)) {
$rPGr0s1 = true;
registerVariable($rPGr0s1);
put('F001_01', 0);
repeatPage('FehlerTag');
}
else {
repeatPage('FehlerTag');
}
}
else {
put('F001_02', 0);
}
}
elseif ($failr0s1_3a1 || $failr0s1_3a2 || $failr0s1_3a3 || $failr0s1_3a4) {
if (time() < $timeout) {
if (!isset($rPGr0s1)) {
$rPGr0s1 = true;
registerVariable($rPGr0s1);
put('F001_01', 0);
repeatPage('FehlerZeit');
}
else {
repeatPage('FehlerZeit');
}
}
else {
put('F001_02', 0);
}
}
elseif ($failr0s1_4a1 || $failr0s1_4a2 || $failr0s1_4b1 || $failr0s1_4b2) {
if (time() < $timeout) {
if (!isset($rPGr0s1)) {
$rPGr0s1 = true;
registerVariable($rPGr0s1);
put('F001_01', 0);
repeatPage('FehlerLab');
}
else {
repeatPage('FehlerLab');
}
}
else {
put('F001_02', 0);
}
}
elseif ($failr0s1_5a1 || $failr0s1_5a2 || $failr0s1_5a3 || $failr0s1_5a4) {
if (time() < $timeout) {
if (!isset($rPGr0s1)) {
$rPGr0s1 = true;
registerVariable($rPGr0s1);
put('F001_01', 0);
repeatPage('FehlerSprache');
}
else {
repeatPage('FehlerSprache');
}
}
else {
put('F001_02', 0);
}
}
elseif ($failr0s1_7a1 || $failr0s1_7a2 || $failr0s1_7a3 || $failr0s1_7a4) {
if (time() < $timeout) {
if (!isset($rPGr0s1)) {
$rPGr0s1 = true;
registerVariable($rPGr0s1);
put('F001_01', 0);
repeatPage('FehlerNawi');
}
else {
repeatPage('FehlerNawi');
}
}
else {
put('F001_02', 0);
}
}
else {
if (time() < $timeout) {
put('F001_02', 1);
}
else {
put('F001_02', 0);
}
}
Vielen Dank im Voraus!