Meralgurke: strpos gibt nicht das zurück, was es soll

Beitrag lesen

Hallo,

ich suche mit
if(strpos($rows[$i][2],'Girls')){$type .= 'weiblich;';}
wobei die row in der csv heisst z.b. Girls Pant Denim blabla

Wieso wird das strpos nicht erkannt, nur wenn $row abändere in:

if(strpos($rows[$i][2],'irl')){$type .= 'weiblich;';}

Dann wird der Typ richtig gesetzt.
Kann mir bitte jemand erklären, wieso?

Danke

Wenn du genau hinschaust solltest du das Problem erkennen :)

Deine Abfrage
if(strpos($rows[$i][2],'Girls')){$type .= 'weiblich;';}
kann nicht klappen da strpos als Returnwert eine 0 (Stringposition 0) zurück liefert. If interpretiert 0 automatisch als false. Somit ist der Ausdruck also unwahr und er wird den ifBlock nicht ausführen.

Du solltest === bzw. !== als Vergleichoperator verwenden.

if(strpos($rows[$i][2],'Girls') !== false){$type .= 'weiblich;';}

Damit sollte es klappen.

Gruß Metalgurke