• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit strpos und OR

webana

Mitglied
Hallo,

habe ein Problem, mein Code:

PHP:
if( strpos($str, "\t") === false OR strpos($str, " ") === false ) {
Keine Leerstelle oder Tabulator gefunden, Ausgabe ...
} else {
Leerstelle und/oder Tabulator gefunden, formatieren, Ausgabe ...
}

Da funktioniert es jetzt aber nur wenn ein String eine Leerstelle und ein Tabulator enthält. Wieso? Ich habe doch OR und nicht AND geschrieben.

EDIT: Habe es gerade mal mit AND probiert, da funktioniert es. WIESO?

Gruß Alex
 
Werbung:
Das hat was mit der Logik zu tun, wenn du eine ODER Anweisung hast und die erste Bedingung zu trifft, wird die zweite Bedingung nicht mehr überprüft, weil das erste ja schon true ergibt.

Wenn du es jedoch auf AND machst wird die erste Bedingung überprüft und die zweite, also ganz simpel
 
Ja schon klar ... Aber genau das tut es nicht!

Ich schrieb ja:

Mit OR: Da funktioniert es jetzt aber nur wenn ein String eine Leerstelle und ein Tabulator enthält.

Wobei mir gerade eingefallen ist, das die Überprüfung gar nicht mehr stattfinden muss, da nur die vorhandenen Leerstellen bzw. Tabs formatiert werden sollen. Sonst habe ich immer noch einen Hinweis ausgeben lassen.
 
Werbung:
Naja es ist so wie ich es geschrieben habe. Wenn dein String keine Tabs enthält aber leerschritte geht er trotzdem in die if bedingung, weil die erste Bedingung ja false ist, also sieht die if es nicht mehr für nötig, die zweite Bedingung zu prüfen. Also müsstest du ein AND hinschreiben damit er beides auf false überprüft.
Oder dein String muss halt wirklich beides enthalten, damit die erste Bedingung nicht false sondern true ergibt und dann wird die zweite Bedingung überprüft
 
Zurück
Oben