11 Недоліки PHP
- Погана рекурсія
Рекурсія є механізмом, в якому функція викликає сама себе. Прикладом функції, використовуючи рекурсії швидкого сортування . На жаль в PHP не дуже добре реалізована рекурсія. Зєєв, один з розробників PHP, говорить наступне: ". PHP 4.0 використовує стек для інтенсивного потоку даних, а не за допомогою накопичування. Це означає, що його толерантність рекурсивних функцій значно нижче, ніж в інших мовах."
- Багато PHP-модулів не є потокобезпечними
Пару років тому, Apache випустив версію 2.0 свого веб-сервера. Ця версія підтримує багато-режимів, в якому одну частину програмного забезпечення, можна запустити кілька разів одночасно. Творці PHP сказати, що ядро PHP є поточне, тільки непрофільні модулі найчастіше такими не є. Але дев'ять з десяти раз використовується такий модуль у вашому PHP-скрипті, роблячи ваш сценарій не підходящим для багатопотокового режиму Apache. Погана підтримка багатопотокового режиму PHP часто розглядається як причина Apache 2 все ще не прищепилася.
- PHP є "калікою" з комерційних причин
Продуктивність PHP може бути збільшена до 500% за допомогою кешування. Так чому ж не будують кешування в PHP? Тому що PHP виробник продає свій власний прискорювач Zend і, звичайно, вони не хочуть, щоб пожирали їх власні комерційні продукти. Але є альтернатива: APC .
- Немає імен
Припустимо, хтось створює PHP-модуль, який може читати файли. Одна з функцій цього модуля називається читання. І чужий модуль може читати веб-сторінки, а також містить функції читання. Тоді неможливо використовувати ці модулі разом, тому що PHP не буде знати, які функція читання ви хочете. Просте рішення для цього простору імен. Було запропоновано функція для PHP 5, але на жаль він не робив це . Тепер функції повинні бути з префіксом імені модуля, щоб уникнути конфлікту імен. Це призводить до страшних довгих імена наприклад xsl_xsltprocessor_transform_to_xml що робить код важчим для писання і читання.
- Нестандартні символи формату дати
Багато програмістів знайомі з датами формату символів відомо з UNIX та мови програмування Сі. Інші мови програмування прийняли цей стандарт, але як не дивно, PHP має свій власний, абсолютно несумісний символ формату дати. Хоча в C, "%j " виступає за день в році, в PHP це означає день місяця. Ще більш заплутана: функція STRFTIME і date_format з Smarty, двигун PHP шаблонів, використовую C / UNIX символи формату.
- Немає Unicode
З Unicode можна використовувати будь-яку мову в світі, наприклад, китайська, арабська та іврит. Незважаючи на всі інші серйозні мови програмування які підтримують Unicode протягом багатьох років, PHP все ще дуже важко з цим. Unicode запланований на PHP 6 , і нам все одно доведеться довго чекати , перш ніж PHP почне підтримувати цю тривіальну функцію.
- Повільно
Ви думаєте, Java повільно? PHP набагато повільніше ! Так як же PHP використовують на всіх цих популярних веб-сайтів з великою кількістю відвідувачів? Через кешування. Ці сайти використовують Memcached і APC , щоб отримати продуктивність.