lauras Methode wird so nicht funktionieren.
Es wird in der if-Abfrage zuerst die OR-Verknüpfungen ausgewertet, welche immer true ergeben, da Zeichenketten, die nicht '0' und dann erst das Ergebnis mit $file['type'] verglichen.
Die if-Abfrage gibt also nur false zurück, wenn $file['type'] entweder false, 0, '0', ein leeres Array (array()), ein leerer String oder null ist.
Beispiel:
- Code: Alles auswählen
<pre>
<?php
function abfrage($val)
{
return $val == ('image/png' or 'image/jpeg' or 'image/gif' or 'image/x-icon' or 'image/bmp');
}
echo "'image/png' or 'image/jpeg' or 'image/gif' or 'image/x-icon' or 'image/bmp' ergibt:\n";
var_dump('image/png' or 'image/jpeg' or 'image/gif' or 'image/x-icon' or 'image/bmp');
echo "\n\nabfrage('image/jpg') ergibt:\n";
var_dump(abfrage('image/jpg'));
echo "\nabfrage('a') ergibt:\n";
var_dump(abfrage('a'));
echo "\nabfrage(2) ergibt:\n";
var_dump(abfrage(2));
echo "\nabfrage(true) ergibt:\n";
var_dump(abfrage(true));
echo "\nabfrage('0') ergibt:\n";
var_dump(abfrage('0'));
echo "\nabfrage(0) ergibt:\n";
var_dump(abfrage(0));
echo "\nabfrage(false) ergibt:\n";
var_dump(abfrage(false));
?>
</pre>
Ausgabe:
- Code: Alles auswählen
<pre>
'image/png' or 'image/jpeg' or 'image/gif' or 'image/x-icon' or 'image/bmp' ergibt:
bool(true)
abfrage('image/jpg') ergibt:
bool(true)
abfrage('a') ergibt:
bool(true)
abfrage(2) ergibt:
bool(true)
abfrage(true) ergibt:
bool(true)
abfrage('0') ergibt:
bool(false)
abfrage(0) ergibt:
bool(false)
abfrage(false) ergibt:
bool(false)
</pre>