Einer der Hauptgründe, warum die alte PHP 6-Arbeit gestoppt wurde, war die interne Komplexität und der Arbeitsaufwand, die kaum jemand vollständig verstanden hat.
Ein bisschen Geschichte: Die Unicode-Imlementierung von PHP 6 wurde von einem größeren PHP-Benutzer entwickelt und versuchte, Unicode "richtig" zu machen. Nach einiger Prüfung hat sich der Hauptentwickler der zu-sein-Unicode-Unterstützung von PHP entschieden, einen neuen Zeichenfolgentyp hinzuzufügen, der intern Utf-16 ist, und die Verwendung verschiedener Codierungen an verschiedenen Stellen zuzulassen. Der Code könnte also in einer Codierung geschrieben sein, die Ausgabe könnte eine andere Codierung verwenden und "runtme operations" eine andere Codierung. Der Grund für die Wahl von UTF-16 war, dass die Arbeit auf dem ICU-Archiv basieren sollte, das UTF-16 verwendet, und es wurde festgestellt, dass diese Codierung allgemeine Zeichenfolgenoperationen auf schnelle Weise ausführt, während die Konvertierung zwischen utf- und utf-16 relativ billig ist . So weit, ist es gut.
Die Konsequenz daraus ist nun vor allem die Einführung eines neuen String-Typs. Das interne Typsystem von PHP hatte bis dahin einige Typen (NULL, bool, int / long, float / double, Zeichenkette, Array, Ressource, Objekt) und viele Codes hatten einige Annahmen, dass dies der Fall ist. Abgesehen von solchen Annahmen müssen alle Funktionen, die mit Strings arbeiten, und es gibt viele davon, einzeln ausgewertet werden, und es muss entschieden werden, wie mit Codierungen umgegangen werden soll. Sollten sie mit binären Zeichenfolgen oder Unicode-Zeichenfolgen arbeiten? Wenn eine Konvertierung erforderlich ist, welche Codierung usw. verwendet werden soll, ist dies eine Menge Arbeit und in einigen Fällen ziemlich kompliziert, richtig zu machen. Zusätzlich wurden die internen APIs ziemlich kompliziert, da die meisten Schlüssel-APIs in PHP Versionen für binäre Zeichenfolgen (die alte) und dann oft eine Version für "Laufzeit-codierte" Zeichenfolgen erhielten.
Währenddessen stolperten viele Entwickler über die Komplexität, ärgerten sich über utf-16 und mochten nicht die Tatsache, dass dies die Speichernutzung mehr als verdoppeln und viel Zeit damit verbringen würde, Zeichenfolgen zu konvertieren, während die meisten vorhandenen Anwendungen beschädigt wurden. Da PHP von Freiwilligen betrieben wurde, arbeiteten immer weniger Entwickler daran und andere Dinge häuften sich, und die Mitwirkenden wurden unglücklich und mussten am Ende aufgegeben werden.
Was könnte nun die Zukunft bringen? - Es gibt eine langsame Entwicklung, in der immer mehr Dinge in PHP um utf-8 gebaut werden. Nicht in einer starken Weise mit einem kundenspezifischen Typ, der alles erzwingt, und derzeit sind die Entwickler nicht motiviert, dieses heiße Eisen anzufassen. Man kann hoffen, dass jemand einen guten Vorschlag hat, damit es gut funktioniert, aber derzeit wird "jeder" davonlaufen, wenn er nur das Wort hört. :)