dedlfix: string vergleichen in php

Beitrag lesen

Tach!

In diesem Fall ist es aber nicht notwendig die mb-Variante zu verwenden.

In der Tat:

$haystack = '🎷🎸🎹🎺🎻';
$needle = '🎸🎹';

var_dump(strpos($haystack, $needle));     // int(4)
var_dump(mb_strpos($haystack, $needle));  // int(1)

Das ist ein Versuchsaufbau der nicht zur Aufgabenstellung "beginnt mit" passt. Der folgende Code entspräche dem.

$haystack = '🎸🎹🎺🎻';
$needle = '🎸🎹';

var_dump(strpos($haystack, $needle));     // int(0)
var_dump(mb_strpos($haystack, $needle));  // int(0)

Apropos Ergebnis, hier muss man in jedem Fall (mb_strpos oder strpos) darauf achten, dass die Positionsangabe 0 mit dem false für "gar nicht enthalten" verwechselt werden kann, wenn man einen einfachen Vergleich mit == oder != verwendet. Hier muss typsicher mit === oder !== vergleichen werden.

Deshalb steht das ja auch fett eingerahmt in der Doku.

Nicht bei mb_strpos(). Da ist es aber genauso nötig.

dedlfix.