web-dev-qa-db-de.com

Ist == in PHP ein String-Vergleich, bei dem zwischen Groß- und Kleinschreibung unterschieden wird?

Ich konnte dies auf php.net nicht finden. Ist das doppelte Gleichheitszeichen (==) Groß- und Kleinschreibung beachten, wenn Zeichenfolgen in PHP verglichen werden?

86
user374343

Ja, == unterscheidet zwischen Groß- und Kleinschreibung.

Sie können strcasecmp zum Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung verwenden

100
Colin Pickard

Ja, aber es wird Byte für Byte verglichen.

Wenn Sie Unicode-Zeichenfolgen vergleichen, möchten Sie diese möglicherweise zuerst normalisieren. Siehe die Klasse Normalizer .

Beispiel (Ausgabe in UTF-8):

$s1 = mb_convert_encoding("\x00\xe9", "UTF-8", "UTF-16BE");
$s2 = mb_convert_encoding("\x00\x65\x03\x01", "UTF-8", "UTF-16BE");
//look the same:
echo $s1, "\n";
echo $s2, "\n";
var_dump($s1 == $s2); //false
var_dump(Normalizer::normalize($s1) == Normalizer::normalize($s2)); //true
19
Artefacto

Ja, == unterscheidet zwischen Groß- und Kleinschreibung.

Verwenden Sie für einen Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung übrigens strcasecmp :

<?php
    $var1 = "Hello";
    $var2 = "hello";
    echo (strcasecmp($var1, $var2) == 0); // TRUE;
?>
11
Stephen

== Unterscheidet zwischen Groß- und Kleinschreibung, ja.

Um Zeichenfolgen unempfindlich zu vergleichen, können Sie entweder strtolower($x) == strtolower($y) oder strcasecmp($x, $y) == 0 verwenden.

8
Frxstrem

== unterscheidet zwischen Groß- und Kleinschreibung, einige andere Operanden aus dem PHP-Handbuch, um sich damit vertraut zu machen

http://www.php.net/manual/en/language.operators.comparison.php

2
Robert

Ja, == unterscheidet zwischen Groß- und Kleinschreibung. Für mich ist es am einfachsten, in Großbuchstaben umzuwandeln und dann zu vergleichen. Zum Beispiel:

$var = "Hello";
if(strtoupper($var) == "HELLO") {
    echo "identical";
}
else {
    echo "non identical";
}

Ich hoffe es klappt!

1
Salvi Pascual