Основная причина отсутствия PHP 6 — провал амбициозного проекта по встроенной поддержке юникода (Unicode), который так и не был выпущен. Чтобы избежать путаницы, следующая крупная версия получила номер 7.
📅 Хронология событий
1. 2005 год — Старт проекта PHP 6: Основной целью была глубокая, «нативная» поддержка юникода на уровне ядра языка, чтобы все строковые функции могли с ним работать.
2. 2005-2010 годы — Разработка и трудности: В качестве внутренней кодировки выбрали UTF-16, чтобы упростить интеграцию с библиотекой ICU, но это привело к проблемам:
· Высокое потребление памяти.
· Низкая производительность из-за постоянной конвертации данных.
· Сложность реализации и обратная несовместимость.
· Снизился интерес разработчиков к проекту.
3. 11 марта 2010 года — Замораживание проекта: Из-за трудностей и стагнации принято решение перенести наработки PHP 6 в отдельную ветку, а разработку продолжить на основе PHP 5.3.
4. 2014 год — Официальное решение о номере 7: Чтобы избежать путаницы с провалившимся проектом и его негативными ассоциациями, сообщество проголосовало за то, чтобы следующая крупная версия называлась PHP 7.
🔧 Что планировалось в PHP 6 и куда делось?
Многие запланированные функции (кроме юникода) были перенесены в выпуски 5.x:
· В PHP 5.4 (2012): Трейты, сокращённый синтаксис массивов и другие улучшения.
· Удаление устаревших функций: Безопасные режимы (safe_mode), «волшебные кавычки» (magic_quotes), длинные предопределённые переменные (например, $HTTP_POST_VARS).
💎 Итог
Таким образом, версия PHP 6 была пропущена из-за неудачи с реализацией встроенного юникода. Это осознанное решение позволило избежать путаницы, а все удачные наработки нашли свой путь в последующих стабильных релизах.
Если вас интересуют технические детали о выборе кодировки UTF-16 или современная поддержка юникода в PHP 8.x, я готов рассказать об этом подробнее.
Комментариев 2