PHP Pr0blem mit oder in if-Abfrage

Sarius87

Banned
Registriert
Mai 2016
Beiträge
888
PHP:
if($endung!="mp3" || $endung!="wav") echo "FEHLER";

ich erhalte hier immer die echo-ausgabe obwohl $endung mp3 ist, doch wieso ?? ohne "oder", also

PHP:
if($endung!="mp3") header('Location: '.$file);

kommt die nicht... was ist denn falsch am oder ?
 
Zuletzt bearbeitet:
also... ich vermute mal du möchtest folgendes Konstrukt:

Code:
if ($endung=="mp3" || $endung=="wav") {
  header('Location: '.$file);
}
else {
  echo "Fehler";
}
 
habs korrigiert. ich will die ausgabe nur wenn $endung NICHT mp3 oder NICHT wav ist.
 
Wenn die Endung mp3 ist, ist sie nicht wav und damit ist die If-Abfrage wahr.

Was du möchtest, ist if($endung!="mp3" && $endung!="wav") echo "FEHLER";
Wenn die Endung nicht mp3 und nicht wav ist ;)
 
Quabit schrieb:
Wenn die Endung mp3 ist, ist sie nicht wav und damit ist die If-Abfrage wahr.

Was du möchtest, ist if($endung!="mp3" && $endung!="wav") echo "FEHLER";
Wenn die Endung nicht mp3 und nicht wav ist ;)

Das ist Falsch: da muss ein oder rein kein und. Denn es kann nie File.mp3 und gleichzeitig File.wav sein...
 
nein weil du beides abprüfst: so wie ihr das macht würde es heißen:

var file.mp3

if endung != mp3 und endung != wave
gib was aus


dann würde "gib was aus" nicht ausgegeben, da file.mp3 nicht auch gleichzeitig file.wav ist.

Wenn du was ausgeben willst, wenn file.mp3 ist oder file.wav dann musst du auch oder schreiben und nicht und... denn file kann niemals beides gleichzeitig sein...
 
So wie er es im Eingangspost beschreibt und so wie ich es verstehe:

Annahme mit "und":
PHP:
if($file != "mp3" AND $file != "wav") {
   echo "Fehler";
} else {
    echo "Kein Fehler";
}

Verschiedene Werte für $file eingesetzt:
PHP:
$file = "mp3"; => Kein Fehler
$file = "wav"; => Kein Fehler
$file = "mov"; => Fehler
$file = "Teisi"; => Fehler

Das Gleiche mit "oder":
PHP:
if($file != "mp3" OR $file != "wav") {
   echo "Fehler";
} else {
    echo "Kein Fehler";
}

Verschiedene Werte für $file eingesetzt:
PHP:
$file = "mp3"; => Fehler
$file = "wav"; => Fehler
$file = "mov"; => Fehler
$file = "Teisi"; => Fehler

So, und nu?
 
Ach Gott ... MEGA SORRY - war verwirrt... entschuldigt bitte... zu viel schmarn im Kopf...
Mein gedanklicher Fehler! Blamabel... :)


function ending(filename){
return (/[.]/.exec(filename)) ? /[^.]+$/.exec(filename) : undefined;
}

var a = "file.mp3";

if(ending(a) != "mp3" && ending(a) != "wav") {
console.log("file ist keine mp3 und file ist keine wave");
} else {
console.log("file ist mp3 oder wav");
}

var b = "file";

if(ending(b) != "mp3" || ending(b) != "wav") {
console.log("file ist keine mp3 und file ist keine wave");
} else {
console.log("file b ist mp3 oder wav");
}


das hatte ich ursprünglich im kopf... ist natürlich auch grampf:

if(ending(a) != ("mp3" || "wav"))
 
Zuletzt bearbeitet: (erklärung was ich im kopf hatte... :D)
Zurück
Oben