Warum würde var_dump einen größeren Wert als die Stringlänge zurückgeben?

Ich arbeite daran, einige Songtexte mithilfe einer API zu erhalten und die Lyrics-Zeichenfolge in eine Reihe von Wörtern umzuwandeln. Ich bekomme einige ungewöhnliche Verhaltensweisen in der Funktion preg_replace. Beim Debuggen mit var_dump wurde festgestellt, dass var_dump für die Zeichenfolge "you" den Wert 10 zurückgibt. Dies weist darauf hin, dass möglicherweise etwas nicht stimmt. Danach wirkt preg_replace komisch.

Dies ist mein Code:

$source = get_chart_lyrics_data("madonna","frozen");
$pieces = explode("\n", $source);
$lyrics = array();
for($i=0;$i<count($pieces);$i++){
  if($i>10){
    $words = explode(" ",$pieces[$i]);
    foreach($words as $_word){
      if($_word=="")
        continue;
      var_dump($_word);
      $word = strtolower($_word);
      var_dump($word);
      $word = trim($word);
      var_dump($word);
      $word = preg_replace("/[^A-Za-z ]/", '', $word);
      var_dump($word);
      $lyrics[$word]++;
    }
  }
}

Dies sind die ersten 4 Zeilen, die dieser Code zurückgibt:

string(10) “You”
string(10) “you”
string(10) “you”
string(8) “lyricyou”

Wie kommt es, dass var_dump einen Wert von 10 für "Sie" zurückgibt? Und warum verhält sich preg_replace so?

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage