1) Коротший синтаксис масиву / об’єкта, a la JavaScript (як було зазначено раніше)
2) Дозволити const
змінним дозволити результат обчислення, як define()
це робиться.
3) Ланцюг прямо від конструктора: new User()->name('Ryan');
4) Перенаправлення масиву: something_that_returns_array()[4];
5) Розширена підтримка SPL. SPL виконує гідну роботу з переосмислення функцій рядків та масивів (серед іншого) як об'єктів. Розширення SPL могло б вирішити чимало зусиль щодо того, що мова є такою прискіпливою.
6) Використання ArrayObject()
повинно бути таким же прозорим, як і використання array()
. Ви повинні вміти робити такі речі, як array_filter($array_object_instance)
не роблячи array_filter($array_object_instance->getArrayCopy())
. Ще краще, звичайно, було б $array_object_instance->filter()
.
7) Повноцінне Unicode було б непогано.
8) Перестаньте робити дивні автоматичні перетворення типу. Наприклад, ви не повинні мати можливість echo
об’єкта SimpleXMLElement, попередньо не набравши його якраз як рядок. Або, принаймні, кидайте щось, коли це відбувається (наприклад, у суворому режимі чи в будь-якому іншому режимі error_reporting(-1)
).
9) Підтримка або декількох потоків, або якихось парних / асинхронних зворотних викликів. Це найбільше важливо при спробі завантажувати великі файли через CURL. Замість старовинних ниток, було б непогано щось на зразок Apple Grand Central Dispatch. Або навіть щось схоже на JavaScript, де ви можете робити запити асинхронізації та визначати зворотні дзвінки.
10) Послідовне називання / порядок (тобто голковий стог) було б непогано, але я думаю, що це можна було б краще вирішити за допомогою SPL.
11) Офіційно підтримувана інтерактивна оболонка PHP, як IRB. У Facebook є один дзвінок, phpsh
який був написаний на Python, але йому не вистачає польської мови, яку я хотів би бачити.
12) Для API Reflection додайте підтримку коментарів (a) docblock на константи (глобальний та клас) та (b) підтримку для розбору коментарів, схожих на PHPDoc, у розумну структуру даних. Є пакет PECL під назвою "docblock", який намагається це зробити, але не здається, що автор зайшов дуже далеко.
EDIT: 13) Я також хотів би бачити можливість використання !
та ?
в назвах функцій - як Ruby can.