2017-07-08 3 views
-1

Ich benutze PHP 7.0 und ich möchte nur String-Vergleich zu tun. PHP hat dafür strcmp-Funktion, aber ich weiß nicht, welche Funktion schnell und sicher ist, um einen Stringvergleich durchzuführen. Ich muss viel String vergleichen und möchte wissen, welche Funktion schnelleres Ergebnis bringen würde.PHP String Vergleich für strpos strcmp

In meinem Test gibt strpos NULL nicht für Array-String-Vergleich zurück, aber strcmp tut. In PHP 7 habe ich getestet, aber ich kann andere PHP-Version für das Hosting verwenden und dieses Problem wird empfindlich sein. Ist es in Ordnung zu verwenden, wenn (strpos ($ x, $ y)) String Vergleich verwenden?

+0

Wenn Sie nur versuchen herauszufinden, ob sie die gleichen sind, tun Sie einfach: if ($ a == $ b) {// etwas tun} – Difster

+0

AA .... Ich denke nur, dass. .. danke für Ansering !!! Ist if (strpos ($ x, $ y)) sicher zu vergleichen? – fnclovers

+0

Da ich vielleicht nicht vollständig verstehe, was ich damit anfangen möchte, empfehle ich Ihnen, die Dokumentation zu lesen. http://php.net/manual/en/function.strpos.php – Difster

Antwort

1

strpos - Finden Sie die Position des ersten Auftretens eines Teil in einem String

strcmp - Binary safe String-Vergleich

Wenn die Zeichenfolge eine Zeichenfolge ist, wie Sie von Benutzereingaben oder etwas bekommen würden das ist nicht binär, dann scheint strcmp übertrieben zu sein. Ich würde Difsters Vorschlag verwenden; Es lesen Reiniger dann if (strcmp ($ a, $ b))

gemischte strpos (string $ haystack, mixed $ needle [, int $ 0 offset =])

Dies ist die Methode Signatur für strpos wird Die Rückgabe ist ein truthy Wert, wenn $ b in $ a ist. Also würde ich es nicht verwenden, um zu vergleichen, ob zwei Zeichenfolgen gleich sind, nur wenn Sie sehen wollen, ob eine Zeichenkette innerhalb einer anderen liegt oder wissen wollen, wo sich die Zeichenkette in der anderen befindet.