__БЕЗКН__
-{PHP}- () специјализовани је скриптни језик првенствено намењен за израду динамичног веб садржаја и изводи се на страни сервера.
Увод
-{PHP}- је стекао популарност због своје једноставности и синтаксе наслеђене из програмског језика C. Током времена језик се проширивао и стицао могућности за објектно оријентисано програмирање, нарочито од верзије 5.0. Наликује језику C++ у смислу што дозвољава и чисто-процедурално програмирање, али истовремено омогућава и коришћење класа и других концепата објектно оријентисаног програмирања (наслеђивање, апстрактне класе и методе, интерфејсе итд.).
Историја -{PHP/FI}-
-{PHP}- представља наследника алата по називу -{PHP/FI}-, написаног 1994. године од стране Расмуса Лердорфа.PHP.NET, "Историја -{PHP}--а" -{PHP/FI}- је представљао скуп алата написаних у Перлу, и аутор га је користио за сопствене потребе. Скуп алата је добио име "алати за личну презентацију" (), одакле и скраћеница -{PHP}-. Како су расле потребе на сајту, аутор је преписао комплетан пројекат у C-у и омогућио да може да комуницира са базама података а корисницима свог сајта да направе сопствене презентације помоћу њега. Расмус је потом објавиоUSENET, "Announce: Personal Home Page Tools" своје алате и учинио изворни код доступан свима да би се пројекат брже развијао и да би се грешке (багови) брже исправљале.
-{PHP/FI}-, чија је пуна дефиниција гласила „алати за личну презентацију/преводилац образаца“ () је имао само неке ствари заједничке са данашњим -{PHP}--ом — променљиве као у Перлу, аутоматско рашчлањивање променљивих из захтева и уграђени HTML. -{PHP/FI}- 2.0 је коначно и званично објављен 1997. године, да би га убрзо заменио -{PHP}- 3.0.
-{PHP}- 3.0 -{PHP}- 3.0 је представљао прву верзију која доста личи на данашње верзије -{PHP}--а. Креирали су га израелски програмери Зеев Сураски и Енди Гутманс са факултета Техникон, као потпуну прераду пројекта -{PHP/FI}-. Открили су да је он имао озбиљне недостатке и да није могао задовољити њихов универзитетски пројекат електронске трговине. У сарадњи са Ледорфом су објавили -{PHP}- 3.0 као званичног наследника језика -{PHP/FI}-, а његов развој је заустављен.
Главна особина нове верзије језика је била његова проширивост, која је привукла бројне програмере широм света да додају нове могућности. Поред квалитетне подршке за разне врсте база података, верзија 3.0 је увела и могућност објектно оријентисаног програмирања и већу конзистентност у језичкој синтакси.
Име је промењено у -{PHP}- (без додатка "FI"), чије се значење изменило да представља рекурзивни акроним "-{PHP}-: препроцесор хипертекста" (-{PHP: Hypertext Preprocessor}-).
-{PHP}- 3.0 је званично објављен у јуну 1998. након девет месеци коришћења у пробној фази.
-{PHP}- 4.0 У зиму 1998. Зеев и Гутманс су започели поновно писање -{PHP}--а испочетка, покушавајући да поправе језгро тако да би боље радило са већим апликацијама и да би побољшали модуларност. Ново језгро су назвали Зенд машина (-{Zend engine}-), по деловима својих имена Зеев и Енди, да би касније формирали и Zend Technologies у Рамат Гану, Израел, која надгледа унапређење -{PHP}--а. Ново језгро је успешно довршено и појавило се у јавности средином 1999, а нова верзија -{PHP}--а, 4.0, опремљена новим језгром је званично објављена у мају, 2000. Поред бољих перформанси, нова верзија је укључивала и кеширање стандардног излаза, сесије, бољу подршку за различите веб-сервере, сигурнији пренос корисничких података и неколико нових контролних структура.
-{PHP}- 5.0 Верзија 5.0 је изашла у јулу 2004. године, након дугог развоја и неколико пробних верзија. Користи језгро Зенд машина 2.0 са новим објектним моделом и много нових могућности.
Верзија 5 је такође донела мноштво измена у објектно-оријентисаном програмирању.
-{PHP}- 7.0 Верзија 7.0 је изашла у децембру 2015. године.
Употреба Иако се -{PHP}- може користити за програмирање конзолних апликација и графичких интерфејса (библиотека PHP-GTK), његова основна и главна употреба је у програмирању динамичних страница на Интернету.
До 1997. -{PHP}- је стекао неколико хиљада корисника; до 1998. број сајтова на којима је инсталиран -{PHP}- 3.0 је порастао на пар стотина хиљада а број корисника истог на пар десетина хиљада. Данас -{PHP}- користи неколико стотина хиљада програмера и неколико милиона сајтова укључујући неке од најпосећенијих сајтова на свету, попут Фејсбука, Википедије, Јахуа, Јутуба и Флицкра.
Начин извршења мини|десно|300п|<center>Извршавање -{PHP}- скрипте на веб-серверу Програм који се напише у -{PHP}--у не захтева превођење (компајлирање), него се интерпретира при сваком извршавању. -{PHP}- интерпретатор може радити по PHP CGI принципу, односно тако што ће интерпретатор постојати као екстерна апликација, која се позива да изврши дату скрипту сваки пут кад буде захтевана од неког корисника, а може бити инсталиран и као модул веб-сервиса. Друга варијанта је данас у највећој употреби јер пружа знатно већу брзину извршавања — интерпретатор је на тај начин увек учитан у меморију те се не мора позивати спољашњи програм.
Уобичајен сценарио по ком се извршавају -{PHP}- скрипте је следећи: клијент (корисник Интернета који користи неки интернет прегледач) захтева -{PHP}- страницу са сервера сервер прослеђује захтев сервису за веб (програм веб-сервер на серверу) веб-сервер препознаје да се тражи -{PHP}- датотека не шаље његов садржај клијенту, него га извршава као програм помоћу -{PHP}- модула излазни текст програма (стандардни излаз) се шаље клијенту као резултат захтева клијент препознаје врсту резултата (HTML код, слика, -{PDF}- садржај, архива итд.) резултат се приказује клијенту на одговарајући начин
Структура програма За разлику од већине програмских језика који поседују почетну функцију (main у C-у, први блок BEGIN и Паскалу, класа са main методом у Јави итд.), -{PHP}- датотека, налик на већину скриптних језика, једноставно садржи скуп наредби, које се извршавају једна за другом, од прве до последње, где се последња уједно сматра и крајем -{PHP}- програма.
мини|150п|<center>Структура PHP скрипта -{PHP}- датотеке могу да садрже следеће врсте елемената: -{HTML}- ознаке Ознаке за -{PHP}- -{PHP}- наредбе белине коментаре Постоје четири стила за исписивање -{PHP}- ознака: -{XML}- стил уз помоћ већ поменутих ознака <?php и ?> и такав стил се препоручује, а обавезан је када је -{PHP}- код усађен у -{HTML}- код. У специјалном случају дозвољава се да последња ознака ?> у задњој -{PHP}- скрипти не буде наведена. скраћени стил између ознака <? и ?>. Може да се користи у колико се у конфигурацијској датотеци php.ini активирана опција short_open_tag, али се његова употреба не препоручује зато што у неким окружењима није подржан. Међутим, од верзије 5.4, скраћени стил у облику <?= ... ?> је омогућен без обзира на подешавања унутар конфигурацијске датотеке, а служи као замена за <?php ... ?>.PHP.net: New features, 9. новембар 2012, приступ 13. новембар 2012 скрипт стил између ознака <script language="php"> и <code></script></code>, је дужа верзија -{XML}- стила и обично се препоручује када се истовремено користе и други скриптни језици, посебно ако HTML едитор прави проблеме. ASP стил између ознака <% и %> представља још једну скраћену верзију. Најчешће се користи у ASP и ASP.NET окружењу, али је неопходно претходно активирати опцију short_open_tag у конфигурацијској датотеци php.ini. Такође се не препоручује.
Под белинама или белим просторима () се подразумевају знакови за раздвајање, као што су ознаке за повратак на почетак реда, размаци и табулатори. Интерпретатори за -{HTML}- код и -{PHP}- изворно окружење занемарују ове просторе.
-{PHP}- наредбе „угњежђавају“ се у заглавље () и/или тело () веб стране на следећи начинЛинк груп, материјали: PHP програмски језик, први део, приступ 27. октобар 2012: <?php
PHP наредбе
?> Уколико нека страна садржи -{PHP}- скрипту, требало би да носи наставак .php, како би веб сервер био обавештен о њиховом постојању.
У -{PHP}- датотеци, блок који је окружен језичким структурама, које започињу -{HTML}- ознаком () <?php, а завршавају се ознаком ?>, се сматра -{PHP}- кодом и извршава се помоћу -{PHP}- интерпретатора (тумача), док се остатак кода — ван ових ознака — сматра хипертекстом, који једноставно треба да се испише на стандардни излаз, без интерпретирања. Следи пример једног -{PHP}- програма:
<!-- наредни део написан у HTML-у се преписује директно на стандардни излаз --> <html> <body> <p> <!-- наредни део припада PHP блоку, те се извршава --> <?php echo "Здраво свете!"; ?> <!-- наредни део до краја кода се такође преписује директно на стандардни излаз --> </p> </body> </html> Тумач за -{PHP}- код потпуно игнорише празан простор између наредби, тако да његова употреба зависи од личног избора програмера и само доприноси визуелној прегледности исписаног кода. Крај сваке наредбе обележава се тачком са запетом. На овај начин, претходни пример ће на стандардном излазу приказати следећи текст:
<!-- наредни део написан у HTML-у се преписује директно на стандардни излаз --> <html> <body> <p> <!-- наредни део припада PHP блоку, те се извршава --> Здраво свете!<!-- наредни део до краја кода се такође преписује директно на стандардни излаз --> </p> </body> </html> што представља -{HTML}- код спреман за приказ у интернет прегледачу.
-{PHP}- код може бити организован у функције и класе, и може се организовати у више датотека. Као почетна датотека, тј. датотека чије наредбе се извршавају прве, се узима она датотека која се да интерпретатору на извршавање. Уколико датотека није наведена, сервер ће аутоматски покушати да покрене датотеку index.php.
Основна синтакса Коментари
Коментари се могу писати иза две косе црте // или симбола # ако су једноредни (налазе се у истом реду), или између симбола /* и */ за једноредне и вишередне коментаре.
<?php
echo ”Проба за једноредни коментар”; // Ово је једноредни коментар
/* Ово је коментар исписан у два реда */
echo ”Још један једноредни коментар”; # Ово је једноредни коментар
?>
Променљиве
Променљиве () у -{PHP}- језику се представљају помоћу знака $, иза кога следи име променљиве. Име мора да почне словом или доњом цртом _ иза којег може да следи неограничен број слова, бројева или доњих црта, при чему се словом сматра слово латинице [A-Z], [a-z] или било који знак са ASCII кодом већим од 127. Тумач за -{PHP}- разликује велика од малих слова, па тако променљива $А није исто што и променљива $а.
Променљиве се не декларишу, а њихов тип се одређује према вредностима које им се у изразима додељују током програма, те постоји могућност да се тип променљиве промени.
-{PHP}- има следеће типове променљивих: Основни типови променљивих: boolean — логичке вредности: тачно — true и нетачно — false integer — цели бројеви float — реални бројеви са покретном запетом string — низ (ниска) знакова (симбола), односно текст (литерал) Сложени типови променљивих: array — низ object — објекат Посебни типови променљивих: resource — ресурс, садржи упућивач на спољашњи ресурс, нпр. датотеку или веза са базом података NULL — променљива нема вредност, може садржати само вредност null
Није неопходна додела почетних вредности, мада се препоручује, ради прегледности, безбедности и бољег разумевања кода, с обзиром да се њиховом применом у изразима који садрже мешовите типове података, могу добити различити резултати. Тако нпр:
<?php
$a = 1.2; $b = 2; $b = $a + $b;
?>
променљива $b у почетку је цео број, а затим се претвара у реалан број са једном децималом (3.2). Осим додељивања вредности имплицитно, промена типа променљиве се може извршити експлицитном конверзијом, тако што се испред имена упише тип променљиве, између заграда. Пример:
<?php
$a = 1.2; $b = 2; $b = (int)$a + $b;
?>
У овом случају променљива $b добија вредност 3. При томе се код променљиве $а неће променити ни тип, ни вредност. Корисне функције За исписивање променљивих на стандардни излаз користе се две основне функције: