Weil es so funktioniert. Sie können auf bestimmte Byte-Offsets mithilfe der Klammernotation zugreifen. Das bedeutet jedoch nicht, dass die Zeichenfolge ein Array ist und dass Sie Funktionen verwenden können, die darauf Arrays erwarten. $string[int]
ist syntaktischer Zucker für substr($string, int, 1)
, nicht mehr und nicht weniger.
Weil Strings keine Arrays sind. Sie ermöglichen Ihnen, Buchstaben mit der gleichen Syntax für Ihre Bequemlichkeit zu finden, aber das ist es.
Arrays können auch Schlüssel haben und können sortiert werden. Wenn Zeichenfolgen vollständige Arrays wären, könnten Sie jedem Buchstaben einen Schlüssel geben oder die Buchstaben mit einer der Array-Funktionen alphabetisch sortieren.
Lange Rede, kurzer Sinn: Ein String ist kein Array, auch wenn ein winziger Teil der Syntax ähnlich ist.