Variable prüfen

Alice

Erfahrenes Mitglied
Hallo.

Ich möchte durch eine IF-Abfrage folgendes umsetzen, wenn es möglich ist.

Ich möchte ein Auswahl-Feld absichern. Dazu möchte ich eine IF-Abfrage einbauen die nach Optionen sucht, die es eigentlich im PHP-Skript nicht gibt.

Beispiel:

Mögliche Optionen ($var1)
- PS
- KW
- HP

PHP:
IF $var1 NICHT 'PS' || 'KW' || 'HP')) {
BRICH DAS SKRIPT SOFORT AB 
}
 
Hallo.

Ich möchte durch eine IF-Abfrage folgendes umsetzen, wenn es möglich ist.

Ich möchte ein Auswahl-Feld absichern. Dazu möchte ich eine IF-Abfrage einbauen die nach Optionen sucht, die es eigentlich im PHP-Skript nicht gibt.

Beispiel:

Mögliche Optionen ($var1)
- PS
- KW
- HP

PHP:
IF $var1 NICHT 'PS' || 'KW' || 'HP')) {
BRICH DAS SKRIPT SOFORT AB 
}
Hier würde ich eine UND-Verknüpfung wählen, da bei ODER das Script in diesem Fall immer abbrechen würde.
PHP:
if ( $var1 != 'PS' && $var1 != 'KW' && $var1 != 'HP' ) {
BRICH DAS SKRIPT SOFORT AB 
}

Gruß
 
Funktionier leider nicht so richtig. Vielleicht habe ich aber nur die Frage etwas falsch formuliert.

Wenn $var1 etwas anderes als PS, KW oder HP ist (wurde z.B. manipuliert) dann soll das Skript abbrechen. Ist $var1 aber PS, KW oder halt HP, soll das Skript weiter machen.
 
Funktionier leider nicht so richtig. Vielleicht habe ich aber nur die Frage etwas falsch formuliert.

Wenn $var1 etwas anderes als PS, KW oder HP ist (wurde z.B. manipuliert) dann soll das Skript abbrechen. Ist $var1 aber PS, KW oder halt HP, soll das Skript weiter machen.
Genau das sollte dieses Snippet machen...
PHP:
if ( $var1 != 'PS' && $var1 != 'KW' && $var1 != 'HP' ) { 
    die( 'Var1 hat einen falschen Wert.' );
}

Gruß
 
Wenn du Oder wählst, dann wird wie schon gesagt IMMER abgebrochen, weil $var1 nicht gleichzeitig 3 Werte haben kann.
Die Abfrage mit den && kann so gelesen werden:
Wenn $var weder PS _noch_ KW _noch_ HP ist, breche ab.
Die Abfrage mit || lautet dagegen so:
Wenn $var nicht PS, KW und HP is breche ab.
 
PHP:
if ( $var1 != 'PS' && $var1 != 'KW' && $var1 != 'HP' ) { 
    die( 'Var1 hat einen falschen Wert.' );
}
Das ist ja schon bei drei Werten verwirrend., lass es mal 10 sein.

Einfach ein Array anlegen das alle möglichen Werte enthält und dann mit in_array() prüfen.
PHP:
if (in_array($var1, array('PS','KW','HP'))) {

}
 
PHP:
if ( $var1 != 'PS' && $var1 != 'KW' && $var1 != 'HP' ) { 
    die( 'Var1 hat einen falschen Wert.' );
}
Das ist ja schon bei drei Werten verwirrend., lass es mal 10 sein.

Einfach ein Array anlegen das alle möglichen Werte enthält und dann mit in_array() prüfen.
PHP:
if (in_array($var1, array('PS','KW','HP'))) {

}
Dann solltest Du das ganze aber noch negieren:
PHP:
if  ( !in_array($var1, array( 'PS','KW','HP' ) ) )  { 
    die( 'Var1 hat einen falschen Wert.' );
}

Gruß
 
Ja und Nein, eigentlich hab ich es absichtlich weg gelassen da man ein Skript nicht einfach abbricht sondern den Fehler entsprechend behandelt.
Daraus hätte sich eine if - else Condition ergeben, die Negierung wäre dann eine überflüssige Operation gewesen.

Aber eigentlich ist es auch egal.
 
Zurück