Kluczowa różnica: PHP to język skryptowy po stronie serwera, który ma swoje główne zastosowanie w tworzeniu stron internetowych. Może być jednak używany jako język programowania ogólnego przeznaczenia. PHP4 i PHP5 to dwie wersje PHP. PHP4 zostało wydane 22 maja 2000 r. 13 lipca 2004 r. Wydano PHP5. Był zasilany przez Zend Engine II. To było ulepszenie w stosunku do PHP4 i zawierało wiele nowych funkcji.
PHP jest językiem skryptowym opartym na otwartym kodzie źródłowym, po stronie serwera. Może zasadniczo wykonywać dowolne zadania, które mogą wykonywać inne programy CGI, ale służy głównie do tworzenia dynamicznych stron internetowych. Jego główną zaletą jest to, że jest kompatybilny z wieloma rodzajami baz danych. Ponadto PHP może rozmawiać przez sieci za pomocą IMAP, SNMP, NNTP, POP3 lub HTTP.
PHP zawiera funkcję interfejsu wiersza poleceń i może być używany w niezależnych aplikacjach graficznych. Polecenia PHP można osadzać bezpośrednio w źródłowym dokumencie HTML zamiast wywoływać zewnętrzny plik do przetwarzania danych. W dokumencie HTML skrypt PHP jest zamknięty w specjalnych znacznikach PHP. Dzięki tym znacznikom programiści mogą przełączać się między HTML i PHP, zamiast polegać na dużej ilości kodu do wyprowadzania HTML. Ponadto, ponieważ PHP jest wykonywane na serwerze, klient nie może wyświetlić kodu PHP.
13 lipca 2004 r. Wydano PHP5. Był zasilany przez Zend Engine II. Był to ulepszenie w stosunku do PHP4 i zawierał wiele nowych funkcji, takich jak ulepszona obsługa programowania obiektowego, rozszerzenie PDO (PDO) i liczne ulepszenia wydajności. Rozszerzenie PDO definiuje lekki i spójny interfejs dostępu do baz danych. Późne wiązanie statyczne zostało dodane w wersji 5.3. PHP5 został również zaprojektowany pod kątem kompatybilności wstecznej ze starszymi wersjami PHP, a zatem powinien spowodować zniknięcie małej funkcjonalności podczas konwersji z PHP4 na PHP5.
Niektóre różnice między PHP4 i PHP5:
- PHP5 usunął register_globals, magiczne cytaty i tryb bezpieczny. Wynikało to z faktu, że register_globals otworzył luki w zabezpieczeniach, celowo umożliwiając wstrzyknięcie danych runtime, a użycie magicznych cytatów miało nieprzewidziany charakter.
- PHP4 był zasilany przez Zend Engine 1.0, a PHP5 był zasilany przez Zend Engine II.
- PHP5 zastąpiło magiczne cytaty funkcją addslashes (), aby uniknąć znaków.
- PHP4 to raczej język procedur, podczas gdy PHP5 jest zorientowany obiektowo.
- W PHP5 można zadeklarować klasę jako Abstract.
- PHP5 zawiera statyczne metody i właściwości.
- PHP5 wprowadza specjalną funkcję o nazwie __autoload ()
- PHP5 pozwala zadeklarować klasę lub metodę jako Final
- PHP5 wprowadza wiele magicznych metod, takich jak __call, __get, __set i __toString
- W PHP5 są 3 poziomy widoczności: publiczny, prywatny i chroniony.
- PHP5 wprowadził wyjątki.
- W PHP4 wszystko zostało przekazane wartością, w tym obiektami. Natomiast w PHP5 wszystkie obiekty są przekazywane przez odniesienie.
- PHP5 wprowadza interfejsy. Wszystkie metody zdefiniowane w interfejsie muszą być publiczne.
- PHP5 wprowadza nowy poziom błędu zdefiniowany jako "E_STRICT"
- PHP5 wprowadza nowe domyślne rozszerzenia, takie jak SimpleXML, DOM i XSL, PDO i Hash.
- PHP5 wprowadza nowe funkcje.
- PHP5 wprowadza kilka nowych zastrzeżonych słów kluczowych.
- PHP5 zawiera dodatkowe koncepcje OOP niż php4, takie jak specyfikatory dostępu, dziedziczenie itp.
- PHP5 zawiera ulepszoną obsługę bieżących systemów zarządzania treścią.
- PHP5 zawiera zmniejszone zużycie pamięci RAM.
- PHP5 wprowadza zwiększone zabezpieczenia przed wykorzystaniem luk w skryptach PHP.
- PHP5 wprowadza łatwiejsze programowanie dzięki nowym funkcjom i rozszerzeniom.
- PHP5 wprowadza nowe rozszerzenie MySQL o nazwie MySQLi dla programistów używających MySQL 4.1 i późniejszych.
- W PHP5 SQLite został dołączony do PHP.
- PHP5 wprowadza zupełnie nowe wbudowane rozszerzenie SOAP do współdziałania z usługami sieciowymi.
- PHP5 wprowadza nowe rozszerzenie SimpleXML dla łatwego dostępu i manipulowania XML jako obiektami PHP. Może również łączyć się z rozszerzeniem DOM i odwrotnie.
- W PHP5 znacznie ulepszono strumienie, w tym możliwość dostępu do operacji na niskim poziomie w strumieniach.