Кључна разлика: ПХП је скриптни језик на страни сервера који има своју главну имплементацију у веб развоју. Међутим, може се користити као програмски језик опште намене. ПХП4 и ПХП5 су двије верзије ПХП-а. ПХП4 је објављен 22. маја 2000. Дана 13. јула 2004. издат је ПХП5. Покреће га Зенд Енгине ИИ. То је било побољшање у односу на ПХП4 и укључивало је различите нове могућности.
ПХП је опен соурце, серверски, ХТМЛ уграђени скриптни језик. У основи, он може да обавља било који задатак који други ЦГИ програми могу, али се углавном користи за креирање динамичких Веб страница. Његова главна предност је да је компатибилан са многим типовима база података. Поред тога, ПХП може да говори преко мрежа користећи ИМАП, СНМП, ННТП, ПОП3 или ХТТП.
ПХП укључује могућност интерфејса командне линије и може се користити у самосталним графичким апликацијама. ПХП команде могу бити уграђене директно у ХТМЛ изворни документ, уместо да позивају спољну датотеку за обраду података. У ХТМЛ документу, ПХП скрипт се налази у оквиру посебних ПХП тагова. Због ових ознака, програмер може да се мења између ХТМЛ-а и ПХП-а уместо да се ослања на велике количине кода за излаз ХТМЛ-а. Такође, пошто се ПХП извршава на серверу, клијент не може да види ПХП код.
13. јула 2004. објављен је ПХП5. Покреће га Зенд Енгине ИИ. То је било побољшање у односу на ПХП4 и укључивало је различите нове могућности, као што је побољшана подршка за објектно оријентисано програмирање, проширење ПХП Дата Објецтс (ПДО) и бројна побољшања перформанси. ПДО проширење дефинише лаган и конзистентан интерфејс за приступ базама података. Каснија статичка везивања је додата у верзији 5.3. ПХП5 је такође био дизајниран да буде компатибилан са старијим верзијама ПХП-а и стога би требало да доведе до тога да се мало функционалности разбије док се конвертује из ПХП4 у ПХП5.
Неке разлике између ПХП4 и ПХП5:
- ПХП5 је уклонио регистер_глобалс, магичне цитате и сигуран режим. То је било због чињенице да је регистер_глобалс отворио сигурносне рупе тако што је намерно дозволио убризгавање података о времену извођења и употреба магичних цитата имала непредвидиву природу.
- ПХП4 покреће Зенд Енгине 1.0, док ПХП5 покреће Зенд Енгине ИИ.
- ПХП5 је заменио магичне цитате са функцијом аддсласхес () да би избегао знакове.
- ПХП4 је више процедурални језик док је ПХП5 објектно оријентисан.
- У ПХП5 класа се може декларисати као Сажетак.
- ПХП5 садржи статичке методе и својства.
- ПХП5 уводи посебну функцију под називом __аутолоад ()
- ПХП5 дозвољава да се класа или метод прогласи Финалом
- ПХП5 уводи бројне магичне методе, као што су __цалл, __гет, __сет и __тоСтринг
- У ПХП5, постоје 3 нивоа видљивости: јавни, приватни и заштићени.
- ПХП5 је увео изузетке.
- У ПХП4, све је прослеђено по вредности, укључујући и објекте. Док се у ПХП5 сви објекти прослеђују референцом.
- ПХП5 уводи интерфејсе. Све методе дефинисане у интерфејсу морају бити јавне.
- ПХП5 уводи нови ниво грешке дефинисан као "Е_СТРИЦТ"
- ПХП5 уводи нове подразумеване екстензије као што су СимплеКСМЛ, ДОМ и КССЛ, ПДО и Хасх.
- ПХП5 уводи нове функције.
- ПХП5 уводи неке нове резервисане кључне речи.
- ПХП5 укључује додатне ООП концепте него пхп4, као што су спецификатори приступа, наслеђивање итд.
- ПХП5 укључује побољшану подршку постојећих система за управљање садржајем.
- ПХП5 укључује смањену потрошњу РАМ-а.
- ПХП5 уводи повећану сигурност против искориштавања рањивости у ПХП скриптама.
- ПХП5 уводи лакше програмирање кроз нове функције и проширења.
- ПХП5 уводи ново МиСКЛ проширење под именом МиСКЛи за програмере који користе МиСКЛ 4.1 и новији.
- У ПХП5, СКЛите је у пакету са ПХП-ом.
- ПХП5 уводи потпуно ново уграђено СОАП проширење за интероперабилност са Веб услугама.
- ПХП5 уводи ново СимплеКСМЛ проширење за лак приступ и манипулисање КСМЛ-ом као ПХП објектима. Такође се може повезати са ДОМ екстензијом и обрнуто.
- У ПХП5, токови су знатно побољшани, укључујући могућност приступа операцијама соцкет-а ниског нивоа на токовима.