1) Krótsza składnia tablicy / obiektu, a la JavaScript (jak wspomniano wcześniej)
2) Zezwól const
zmiennym, aby zezwoliły na wynik obliczeń, tak jak define()
robi.
3) Łączenie łańcuchów bezpośrednio z konstruktora: new User()->name('Ryan');
4) Dereferencje tablicowe: something_that_returns_array()[4];
5) Rozszerzona obsługa SPL. SPL wykonuje przyzwoitą robotę, przekształcając funkcje łańcuchów i tablic (między innymi) jako obiekty. Rozszerzenie SPL może rozwiązać wiele problemów związanych z tym, że język jest tak szalony.
6) Używanie ArrayObject()
powinno być tak przejrzyste jak używanie array()
. Powinieneś być w stanie robić rzeczy array_filter($array_object_instance)
bez robienia array_filter($array_object_instance->getArrayCopy())
. Oczywiście byłoby jeszcze lepiej $array_object_instance->filter()
.
7) Przydałby się pełny Unicode.
8) Przestań robić dziwne automatyczne konwersje typów. Na przykład nie powinno być możliwe echo
utworzenie obiektu SimpleXMLElement bez uprzedniego jawnego typowania go jako ciąg znaków. A przynajmniej rzuć coś, kiedy to się stanie (np. W trybie ścisłym lub w jakimkolwiek innym trybie error_reporting(-1)
).
9) Wsparcie dla wielu wątków lub jakiegoś zdarzenia / asynchronicznego wywołania zwrotnego. Ma to największe znaczenie podczas próby przesyłania dużych plików za pomocą cURL. Zamiast wątków old skool, byłoby coś takiego jak Grand Central Dispatch firmy Apple. Lub nawet coś w stylu JavaScript, w którym można wysyłać żądania asynchroniczne i definiować połączenia zwrotne.
10) Spójne nazewnictwo / porządek (np. Stóg siana z igłą) byłoby fajne, ale myślę, że można to lepiej rozwiązać za pomocą SPL.
11) Oficjalnie obsługiwana interaktywna powłoka PHP, taka jak IRB. Facebook ma taki, phpsh
który został napisany w Pythonie, ale brakuje mu polskiego, który chciałbym zobaczyć.
12) W przypadku interfejsu API Reflection dodaj obsługę (a) komentarzy docblock na temat stałych (globalne i klasowe) oraz (b) obsługę analizowania komentarzy podobnych do PHPDoc w rozsądnej strukturze danych. Istnieje pakiet PECL o nazwie „docblock”, który próbuje to zrobić, ale nie wydaje się, aby autor zaszedł bardzo daleko.
EDYCJA: 13) Chciałbym również zobaczyć możliwość używania !
i ?
nazw funkcji - jak Ruby może.