PHP — разлика између измена

Садржај обрисан Садржај додат
Autobot (разговор | доприноси)
м Разне исправке
Autobot (разговор | доприноси)
м Разне исправке; козметичке измене
Ред 1:
__БЕЗКН__
{{Програмски језик
| назив = {{СТРАНИЦА}}
| слика = PHP-logo.svg
| натпис уз слику = PHP логотип
| оригинални назив =
| изговор на српском = пе-ха-пе
| модел = императивни, објектно-оријентисан
| настанак = {{start date and age|1995}}<ref name="mysqlconference">{{cite web | last=Lerdorf | first=Rasmus | title = PHP on Hormones&nbsp; – history of PHP presentation by Rasmus Lerdorf given at the MySQL Conference in Santa Clara, California | date = 26. 044. 2007. | accessdate = 11. 12. 2009. | publisher=The Conversations Network | url=http://itc.conversationsnetwork.org/shows/detail3298.html }}</ref>
| аутори = [[Расмус Лердорф]]
| дизајнери = Пе-ха-пе група (The PHP group)
| актуелна верзија = 7.2.7<ref name=php7final>{{cite web|url=https://php.net/archive/2016.php#id2016-11-10-1|title = News Archive – 2016: PHP 7.0.13 Released|date = 10. 11. 2016 |accessdate = 10. 11. 2016|website=php.net}}</ref>
| датум актуелне верзије = {{start date and age|2018|6|21}}
| типови = динамички, слаби
| имплементације =
| дијалекти =
| утицаји = [[C (програмски језик)|C]], [[Перл (програмски језик)|Перл]], [[Јава]], [[C++]], [[C Sharp|C#]], [[Python (програмски језик)|Пајтон]]
| утицао на = Php4delphi, Фалкон, Хак
| оперативни системи = [[Више-платформски]]
| лиценца = Пе-ха-пе лиценца
| сајт = {{URL|php.net}}
| сајт документације = {{URL|php.net/docs.php}}
}}
 
Ред 91:
== Структура програма ==
За разлику од већине програмских језика који поседују почетну функцију (<code>main</code> у [[C (програмски језик)|C]]-у, први блок <code>BEGIN</code> и [[Паскал (програмски језик)|Паскалу]], класа са <code>main</code> методом у [[Јава|Јави]] итд.), -{PHP}- [[датотека]], налик на већину скриптних језика, једноставно садржи скуп наредби, које се извршавају једна за другом, од прве до последње, где се последња уједно сматра и крајем -{PHP}- програма.
 
[[Датотека:Структура_PHP_скрита.jpg|мини|150п|<center>Структура PHP скрита]]
-{PHP}- датотеке могу да садрже следеће врсте елемената<ref name="микро">[http://www.mikroknjiga.rs/Knjige/RAZ4/01_RAZ4.pdf Микрокњига: PHP и MySQL: развој апликација за Веб, Лук Вилинг, Лаура Томсон .]. {{page|year=2009|isbn=978-86-7555-340-3|pages=}}</ref>:
* -{HTML}- ознаке
* Ознаке за -{PHP}-
* [[#Наредбе| -{PHP}- наредбе]]
* белине
* [[#Коментари|коментаре]]
Линија 170 ⟶ 171:
=== Променљиве ===
 
[[Промјенљива (програмирање)|Променљиве]] ({{јез-ен|variables}}) у -{PHP}- језику се представљају помоћу знака <code>$</code>, иза кога следи име променљиве. Име мора да почне словом или доњом цртом _ иза којег може да следи неограничен број слова, бројева или доњих црта, при чему се словом сматра слово латинице <nowiki>[A-Z], [a-z]</nowiki> или било који знак са [[ASCII]] кодом већим од 127. Тумач за -{PHP}- разликује велика од малих слова, па тако променљива <code>$А</code> није исто што и променљива <code>$а</code>.<ref>[http://www.php.net/manual/sr/language.variables.basics.php PHP.net: Basics, 2. новембар 2012, приступ 5. новембар 2012]</ref>
 
Променљиве се не декларишу, а њихов тип се одређује према вредностима које им се у изразима додељују током програма, те постоји могућност да се тип променљиве промени.
Линија 176 ⟶ 177:
Пе-ха-пе има следеће типове променљивих:<ref name="php_tipovi">[http://www.php.net/manual/sr/language.types.intro.php PHP.net: Introduction, 20. август 2011, 7. новембар 2012]</ref>
* Основни типови променљивих:
** '''boolean''' — логичке вредности: тачно — true и нетачно — false
** '''integer''' — [[цео број|цели бројеви]]
** '''float''' — [[реалан број|реални бројеви]] са покретном запетом
** '''string''' — низ (ниска) знакова (симбола), односно текст (литерал)
* Сложени типови променљивих:
** '''array''' — [[#Низови|низ]]
** '''object''' — [[#Класе и објекти|објекат]]
* Посебни типови променљивих:
** '''resource''' — ресурс, садржи упућивач на спољашњи ресурс, нпр. [[#Управљање датотекама|датотеку]] или веза са базом података
** '''NULL''' — променљива нема вредност, може садржати само вредност <code>null</code>
 
Није неопходна додела почетних вредности, мада се препоручује, ради прегледности, безбедности и бољег разумевања кода, с обзиром да се њиховом применом у изразима који садрже мешовите типове података, могу добити различити резултати. Тако нпр:
Линија 214 ⟶ 215:
==== Корисне функције ====
За исписивање променљивих на стандардни излаз користе се две основне функције:
* <code>'''[[#Кључне речи|print]]''' ( $arg )</code><ref>[http://php.net/manual/en/function.print.php PHP.net: print, 26. октобар 2012, приступ 29. октобар 2012]</ref>
* <code>'''[[#Кључне речи|echo]]''' ( $arg1 [, $arg2 ... ] )</code><ref>[http://www.php.net/manual/en/function.echo.php PHP.net: echo, 26. октобар 2012, приступ 29. октобар 2012]</ref>
Обе су језички конструктори, па се при њиховом позивању не морају користити заграде. Разлика између једне и друге функције је у томе што функцији ''print'' може да се проследи само један аргумент, док ''echo'' може да штампа више њих одједном, тако да што при позиву променљиве стоје међусобно раздвојене запетом. Променљиве свих типова биће претворене у тип <code>string</code> приликом исписивања.
 
Линија 329 ⟶ 330:
| ++ || $a++ || $a = $a + 1
|-
| -- || $a-- || $a = $a — 1
|-
| += || $a += $b || $a = $a + $b
|-
| -= || $a -= $b || $a = $a — $b
|-|
| * = || $a *= $b || $a = $a * $b
|-
| /= || $a /= $b || $a = $a / $b
Линија 357 ⟶ 358:
|-
| === || идентично (тип и вредност) || $a === $b
|-|
| != || није једнако (различито) || $a != $b
|-|
| <> || није једнако (различито) || $a <> $b
|-|
| !== || није идентично || $a !== $b
|-|
| < || мање од || $a < $b
|-
| > || веће од || $a > $b
|-|
| <= || мање или једнако|| $a <= $b
|-
| >= || веће или једнако || $a >= $b
Линија 379 ⟶ 380:
! оператор !! назив !! употреба !! резултат
|-
| ! || [[логичка негација|негација]] || !$a || израз тачан ако је $а нетачно
|-
| && || [[логичка конјункција|конјункција]] || $a && $b || тачан ако су $а и $b тачни
|-
| <nowiki>||</nowiki> || [[дисјункција]] || $a <nowiki>||</nowiki> $b || тачан ако је $а или $b тачно
|}
* оператори над битовима ({{јез-ен|bitwise operators}}) омогућавају да се цео број обрађује као група битова којим је број представљен у меморији. У -{PHP}- немају велику примену.<ref name="микро" />
Линија 392 ⟶ 393:
! оператор !! назив !! употреба !! резултат
|-
| <nowiki>&</nowiki> || конјункција || $a & $b || align=left | битови активни у $a и $b активни су и у резултату
|-
| <nowiki>|</nowiki> || дисјункција || $a <nowiki>|</nowiki> $b || align=left | битови активни у $a или у $b активни су и у резултату
|-
| ~ || негација || ~$a || align=left | битови активни у $a нису активни у резултату и обрнуто
|-
| ^ || искључива дисјункција || $a ^ $b || align=left | битови активни или у $a или у $b, али не у оба, активни су и у резултату
|-|
| << || померање битова улево || $a << $b || align=left | помера битове у $a улево за $b места
|-
| >> || померање битова удесно || $a >> $b || align=left | помера битове у $a удесно за $b места
Линија 443 ⟶ 444:
|align=right|6.||Логичко не: !||здесна
|-
|align=right|7.||Аритметички оператори: <nowiki>* / %</nowiki>||слева
|-
|align=right|8.||Аритметички оператори: + -
 
Оператор за придруживање ниски: <nowiki>.</nowiki>
||слева
|-
|align=right|9.||Оператори померања битова: <nowiki><< >></nowiki>||слева
|-
|align=right|10.||Оператори провере неједнакости: <nowiki>< <= > >= <></nowiki>||неасоцијативни
|-
|align=right|11.||Оператори провере једнакости: == != === !==||неасоцијативни
Линија 460 ⟶ 461:
|align=right|13.||Битско ексклузивно или: ^||слева
|-
|align=right|14.||Битско или: <nowiki>|</nowiki>||слева
|-
|align=right|15.||Логичко и: <nowiki>&&</nowiki>||слева
|-
|align=right|16.||Логичко или: <nowiki>||</nowiki>||слева
|-
|align=right|17.||Условни оператор: ? :||слева
|-
|align=right|18.||Оператори доделе: <nowiki>= += -= *= /= .= %= &= |= ^= <<= >>= =></nowiki>||здесна
|-
|align=right|19.||Логичко и: and||слева
Линија 476 ⟶ 477:
|align=right|21.||Логичко или: or||слева
|-
|align=right|22.||Запета: ,||слева
|}
 
Линија 512 ⟶ 513:
 
у трећем реду, оператори доделе <code>=</code> су асоцијативни здесна па ће се применити овим редоследом:
 
# додела вредности <code>$c</code>, што је <code>2</code>, променљивој <code>$b</code> и добиће се резултат <code>2</code>
# додела резултата <code>2</code> променљивој <code>$a</code> и добиће се резултат <code>2</code>
Ред 884:
 
Један од сложенијих типова променљивих су '''[[низ]]ови''' ({{јез-ен|arrays}}). Низ је група променљивих референцирана преко истог имена. За разлику од других програмских језика, овде елементи низа могу бити подаци различитог типа. У употреби су две врсте низова<ref>[http://imi.pmf.kg.ac.rs/component/docman/doc_view/480-wp-vezbe-4.html ИМИ ПМФ Крагујевац: Материјал за вежбе из Веб програмирања, приступ 25. октобар 2012]</ref>:
* '''нумерички''', код којих се користе позитивни цели бројеви за индексирање, почевши од индекса 0
 
<source lang="php">
Ред 929:
?>
</source>
* '''асоцијативни''', који као индексе (кључеве) могу да користе податке знаковног типа (string), осим целобројних (integer)<ref name="арр">[http://www.php.net/manual/sr/language.types.array.php PHP.net arrays, 20. август 2011, приступ 28. октобар 2012]</ref>
 
<source lang="php">
Ред 956:
|-
| === || идентично || $a === $б || израз је тачан ако су низови $а и $б имају исте парове индекс/вредност, по истом редоследу и типу података
|-|
| != || различито || $a != $б || израз је тачан ако је $a различит од $б
|-|
| <> || различито || $a <> $б || израз је тачан ако је $а различит од $б
|-|
| !==|| није идентично || $a !== $б || израз је тачан ако $а није идентичан $б
|}
 
Приступ елементима низа је веома једноставан коришћењем угластих заграда []. -{PHP}- располаже великим бројем функција за рад са низовима.<ref name="арр" /><ref name="етф">{{Cite web |url=http://rti.etf.bg.ac.rs/rti/os4ip/P5.pdf |title = ЕТФ предавања: Интернет програмирање PHP, Проф др Бошко Николић, приступ 28. октобар 2012 |access-date = 29. 10. 2012 |archive-url=https://web.archive.org/web/20120906230122/http://rti.etf.bg.ac.rs/rti/os4ip/P5.pdf |archive-date = 066. 099. 2012 |dead-url=yes |df= }}</ref>
 
{| class="wikitable" style="background: white;text-align: left"
Ред 1.066:
=== Функције ===
 
[[Функција (програмирање)|'''Функције''']] омогућавају извршавање одређеног блока [[#Наредбе|наредби]], које се понављају. -{PHP}- има доста већ уграђених, али постоји могућност дефинисиња сопствених функција. Функција може да се позове из неког другог дела скрипте, прослеђујући јој аргуменате, а она затим, када се изврши, може да врати неку вредност. Разлози због којег се користе функције могу бити<ref name="коре">{{Cite book|last1last=Atkinson|first1first=Leon|last2=Suraski|first2=Zeev|title = Core PHP Programming|url=http://books.google.com/books?id=e7D-mITABmEC|year=2004|publisher=Prentice Hall Professional|isbn=978-0-13-046346-3|pages=}}</ref>:
* избегавање поновног писања већ написаног дела кода
* лакше разумевање кода
Ред 1.119:
 
Навођењем променљивих у листи аргумената, променљиве се могу проследити<ref name="веб" />.{{чињеница|date=02. 2016.}}<!--mrtva veza od tog datuma-->:
* '''по вредности''' ({{јез-ен|by value}}), када се унутар функције њихове вредности не мењају
* '''по адреси''', односно референци ({{јез-ен|by reference}}) помоћу симбола <code>&</code>, када је неопходно да се вредност променљиве промени унутар функције. Позив по адреси могућ је једино приликом декларисања функције, никако при њеном позивању, у оквиру аргумената<ref name="нутшел">{{harvnb|Hudson|2005|pp=}}</ref>
 
<source lang="php">
Ред 1.170:
 
Да би променљиве коришћене локално, у оквиру неке функције имале глобални карактер, односно да би њене вредности биле на располагању и ван функције, променљиве је неопходно посебно назанчити на један од следећих начина:
* коришћењем кључне речи '''global''':
<code>
<source lang="php">
Ред 1.186:
?>
</source>
* коришћењем '''асоцијативног низа''' <code>$GLOBALS</code>, који је распложив увек и свуда, у било ком окружењу, због чега се назива супер глобалним. Елементе овог низа чине вредности, док индексе низа чине имена расположивих променљивих.<ref name="оливер" /> У претходном примеру:
<source lang="php">
<?php
Ред 1.266:
 
Читање садржаја, могуће је једино ако је датотека претходно успешно отворена. Може се извршити:
* линију по линију, помоћу функције <code>'''fgets'''</code><ref>[http://www.php.net/manual/sr/function.fgets.php PHP.net: fgets, 20. август 2011, приступ 9. новембар 2012]</ref>:
 
<code>
Ред 1.274:
</code>
где је променљива која садржи показивач на ресурс (означена као <code>$фд</code> у примеру) једини обавезни параметар. Уз њега се може навести променљива у коју ће бити смештен број учитаних бајтова. Учитавање је могуће све док показивач не дође до [[EOF (рачунарство)|краја датотеке]]. Функција враћа учитану линију у колико се успешно извршила, односно вредност нетачно, ако је дошло до грешке. Учитана линија обично се смешта у низ или у знаковну промнљиву (<code>string</code>).
* целог садржаја који се смешта у низ помоћу функције <code>'''fgets'''</code><ref>[http://www.php.net/manual/sr/function.file.php PHP.net: file, 20. август 2011, приступ 9. новембар 2012]</ref>
* целог садржаја који се смешта у знаковну (текстуалну) променљиву <code>'''file_get_contents'''</code><ref>[http://www.php.net/manual/sr/function.file-get-contents.php file_get_contents, 20. август 2012, приступ 9. новембар 2012]</ref>
 
Пошто је број отворених ресурса ограничен, када се заврше све потребне акције над датотеком, препоручује се њено затварање, помоћу функције <code>'''fclose'''</code>:
Ред 1.314:
</code>
 
Свакој од њих се прослеђује име датотеке и путања до ње.<ref name="етф" /> Навођење путање није обавезно у колико је она наведена у опцији <code>include-path</code> конфигурацијске датотеке <code>php.ini</code> или ако се датотека налази у истом [[директоријум]]у као и скрипта која позива спољашњу датотеку.<ref>[http://www.php.net/manual/sr/ini.core.php#ini.include-path PHP.net: ini.include-path, 20. август 2012, приступ 30. октобар 2012]</ref> Није обавезна ни употреба заграда, с обзиром да се ради о основним функцијама, најчешће се користе због лакше прегледности. Називи датотека, које се наводе као аргументи ових функција могу да буду произвољни, али се препоручује да њихове [[Екстензија (датотечни систем)|екстензије]] увек буду <code>.php</code> или <code>.inc.php</code>. У супротном, ако корисник покуша сам да отвори неку од оваквих датотека, интерпретатор неће неће препознати као PHP код и приказаће њихов садржај, као да се ради о обичним тексту.<ref name="орели">{{Cite book|last1last=Davis|first1first=Michele E.|last2=Phillips|first2=Jon A.|title = Learning PHP & MySQL: Step-by-Step Guide to Creating Database-Driven Web Sites|url=http://books.google.com/books?id=IpuT0GxHvAkC|year=2007|publisher="O'Reilly Media, Inc."|isbn=978-0-596-55165-0|pages=}}</ref>
Све четири функције веома слично раде: укључују читав садржај наведене датотеке у текућу скрипту. Разлика између функције <code>include</code> и <code>require</code> је у понашању у случају да датотека не постоји или није видљива на наведеној путањи. У том случају функција <code>include</code> само даје упозорење, док је функција <code>require</code> „строжа“ и даје грешку, која зауставља извршавање скрипте.<ref name="орели" /> Суфикс <code>„_once“</code> се односи на функције и класе из спољашње датотеке. Њиме се појашњава да се деклрација објеката врши само једном, чиме се спречава вишеструко декларисање, које -{PHP}- не дозвољава, пошто иначе, иста спољашња датотека може да се наведе више пута, на различитим местима у програму.<ref name="орели" />
 
Ред 1.385:
</code>
Приликом избора имена класа важе иста правила, као и за имена функција и променљивих. Осим тога, интерпретатор не прави разлику између малих и великих слова, али је обичај да у именима класа почетак речи буде велико слово, а да остала слова буду мала, како би се разликовале од осталих идентификатора<ref name="етф" />. Својства<ref name="линк-ооп">[http://www.it-akademija.com/materijal-sa-predavanja/php-kurs/PHP08.pdf Линк груп, материјал: Објектно-оријентисано програмирање у PHP-у, приступ 31. октобар 2012]</ref>, односно '''атрибути''' ({{јез-ен|attributes}}), особине или карактеристике су скуп променљивих, од којих неке могу да имају почетну вредност. Вредност се дефинише преко једноставних израза, који не могу да садрже друге променљиве, нити функције. Акције<ref name="крстарица-класе" /> или понашање класе дефинише се преко '''метода'''<ref name="линк-ооп" />, које заправо имају улогу функција у [[strukturirano programiranje|структурном програмирању]],<ref name="крстарица-класе" /> с том разликом да је дозвољено да метода неке друге класе или спољашња корисничка функција носе исто име. Гледајући дефиницију класе, лако се може закључити да су то заправо колекције променљивих и функција, преко којих се дефинишу њена својства и понашање.<ref name="линк-ооп" /> Како својства, тако и методе могу имати различиту видљивост у односу на своје окружење. Ово се декларише преко кључних речи<ref name="оливер" />:
* '''public''' — атрибути и методе су јавни, односно потпуно су доступни ван постојеће класе
* '''private''' — атрибути и методе су доступни једино унутар класе
* '''protected''' — атрибути и методе су доступни унутар саме класе или унутар класа изведених ({{јез-ен|extended}}) од ње.
 
За методе важи правило да ако се не наведе ни једна од од ове три кључне речи, она се сматра јавном, док је код променљивих обавезно навести једну од три могућности за њихову доступност. Ово правило је уведено од пете верзије (-{PHP}-.5), док су у претходној верзији све методе и сви атрибути били јавни. Тада је за атрибуте било обавезно употребити кључну реч ''var'', која има исто значење као и ''public'', док за методе међутим, није било могућности избора доступности, све су биле јавне.<ref name="оливер" />
Ред 1.400:
 
За одређени објекат (инстанцу класе), да би се приступило неком атрибуту или методи:
* Искључиво унутар саме класе, користи се кључна реч <code>$this</code>, променљиве која означава сопствени објекат, уз оператор '''->'''<ref name="оливер" />:
 
<code>
Ред 1.409:
</source>
</code>
* Ван класе, једном када је направљен нови објекат и пошто се извршила метода конструктора, помоћу имена конкретног објекта и оператора '''->'''<ref name="линк-ооп" />:
<code>
<source lang="php">
Ред 1.541:
==== Наслеђивање ====
[[Датотека:Наслеђивање PHP.jpg|мини|350п|<center>Различити начини једноструког наслеђивања класа]]
'''Наслеђивање''' ({{јез-ен|Inheritance}}) је једна од најкорисинијих алатки у објектно-оријентисаном програмирању, која омогућава да корисник дефинише основну класу обично са једноставнијим или заједничким атрибутама и методама, и на основу ње изведе нове класе, које садрже извесне специфичности у односу на основну класу. Каже се да ако је Б класа исто што и А, а не важи обрнуто, онда је А наткласа или основна класа, а Б је изведена класа.<ref name="ЦАЕ">Computer Aided Education S.A: Programación páginas web con PHP material Herencia{{ес}}</ref> Основна класа се назива родитељ или наткласа ({{јез-ен|superclass}}), а све класе изведене од ње су њена деца или поткласе ({{јез-ен|subclass}}). Деца наслеђују све родитељске атрибуте и методе, декларисане као јавне (public) или као заштићене (protected), неке од њих могу да се измене ({{јез-ен|overload}}) и такође, свако дете може да надогради класу родитеља, новим атрибутима и методама.<ref name="курсеви">[http://coursesweb.net/php-mysql/php-oop-inheritance-class-extends PHP OOP — Inheritance, class extends, Courses web: PHP OOP — Inheritance, class extends, приступ 2. новембар 2012]</ref> Специјално у случају да су неки метод или цела родитељска класа, декларисани као завршни или финални ({{јез-ен|[[#Кључне речи|final]]}}), они неће моћи да буду измењен у изведеној класи.<ref>[http://php.net/manual/sr/language.oop5.final.php PHP.net: Final Keyword, 20. август 2011, приступ 2. новембар 2012]</ref> Док свака класа родитељ може имати више изведених класа, свака изведена класа може имати само једног родитеља, односно, наслеђивање је једноструко. За разлику од других програмских језика<ref name="младен">{{Cite book|last1last=Gogala|first1first=Mladen|last2=MacIntyre|first2=Peter|last3=Danchilla|first3=Brian|title = Pro PHP Programming|url=http://books.google.com/books?id=V1-yrnLpYeMC|year=2011|publisher=Apress|isbn=978-1-4302-3560-6|pages=}}</ref>, попут [[C++]] што их чини или врло сложеним или мање ефикасним<ref name="Јава_2">Јава 2, Том I — основе, седмо издање, ЦЕТ, Београд (. {{page|year=2007|isbn=978-86-7991-288-6|pages=}}</ref>, овде вишеструко наслеђивање није подржано.<ref name="младен" />
 
Декларисање изведене класе врши се на основу родитељске класе уз помоћ кључне речи '''extends''',<ref name="курсеви" />
Ред 1.562:
class Родитељ {
function пример() {
echo "метода — пример у родитељској класи.<br />

\n";
}
}
class Дете extends Родитељ {
function пример() {
echo "Измењена метода — пример.<br />

\n";
parent::пример(); //позива истоимену родитељску методу
}
Линија 1.623 ⟶ 1.627:
</source>
 
Да би се утврдило да ли је неки објекат примерак одређене класе, користи се оператор '''instanceof''', који примењен над неким објектом у изразу, врaћавраћа вредности тачно или нетачно. За примераке наслеђених класа, резултат операције у односу на родитељску класу, такође ће се добити тачна вредност<ref>[http://www.php.net/manual/sr/language.operators.type.php PHP.net: Оператор за типове, 20. август 2011, приступ 7. новембар 2012]</ref>:
 
<source lang="php">
Линија 1.957 ⟶ 1.961:
</div>
<div class="central-featured-lang lang1" lang="sr">
<a href="http://sr.wikipedia.org/" title = "Српски — Википедија — слободна енциклопедија"
style="margin-left: 115px;">
<strong>Српски</strong>
Линија 2.060 ⟶ 2.064:
 
== Доступност и лиценца ==
-{PHP}- се може бесплатно преузети широм Интернета и на званичном сајту -{PHP}--а, а лиценциран је [http://www.php.net/license/3_01.txt -{PHP}- лиценцом], која предвиђа:<ref>[http://www.php.net/downloads.php PHP.NET, "Downloads"]</ref><ref>{{cite web|url=http://www.php.net/license/3_01.txt |title = The PHP License, version 3.01|accessdate = 20. 055. 2010. }}</ref>
 
{{quote
Линија 2.066 ⟶ 2.070:
}}
 
Ово ограничење употребе "PHP"-а чини лиценцу PHP неспојивом с [[GPL|Општом јавном лиценцом]], док Зенд лиценца није компатибилна због рекламне клаузуле сличне оној из оригиналне [[BSD licenca|БСДBSD лиценце]].<ref>{{cite web | title = GPL-Incompatible, Free Software Licenses | url = https://www.gnu.org/licenses/license-list.html#GPLIncompatibleLicenses | work = Various Licenses and Comments about Them | publisher = Free Software Foundation|accessdate = 033. 011. 2011.}}</ref>
 
== Извори ==
Линија 2.073 ⟶ 2.077:
== Литература ==
{{refbegin|2}}
* {{Cite book | ref = harv |last=Trachtenberg|first=Adam|title = Upgrading to PHP 5|url=http://books.google.com/books?id=Yat0DYXpUj8C&pg=PA32|year=2004|publisher="O'Reilly Media, Inc."|isbn=978-0-596-00636-5}}
* {{Cite book | ref = harv |last1last=Gogala|first1first=Mladen|last2=MacIntyre|first2=Peter|last3=Danchilla|first3=Brian|title = Pro PHP Programming|url=http://books.google.com/books?id=V1-yrnLpYeMC|year=2011|publisher=Apress|isbn=978-1-4302-3560-6}}
* {{Cite book | ref = harv |last=Heurtel|first=Olivier|title = PHP 5.3: Desarrollar un sitio Web dinámico e interactivo|url=http://books.google.com/books?id=GcymrdA9lZoC&pg=PA147|year=2011|publisher=Ediciones ENI|isbn=978-2-7460-6666-3|pages=147}}
* {{Cite book | ref = harv |last1last=Davis|first1first=Michele E.|last2=Phillips|first2=Jon A.|title = Learning PHP & MySQL: Step-by-Step Guide to Creating Database-Driven Web Sites|url=http://books.google.com/books?id=IpuT0GxHvAkC|year=2007|publisher="O'Reilly Media, Inc."|isbn=978-0-596-55165-0}}
* {{Cite book | ref = harv |last=MacIntyre|first=Peter|title = PHP: The Good Parts|url=http://books.google.com/books?id=THI24xC5CUwC&pg=PA120|year=2010|publisher="O'Reilly Media, Inc."|isbn=978-1-4493-9074-7|pages=120-}}
* {{Cite book | ref = harv |last=Hudson|first=Paul|title = PHP in a Nutshell|url=http://books.google.com/books?id=dm2_jgULbBUC|year=2005|publisher="O'Reilly Media, Inc."|isbn=978-1-4493-7912-4}}
* {{Cite book | ref = harv |last=Lurig|first=Mario|title = PHP Reference: Beginner to Intermediate PHP5|url=http://books.google.com/books?id=noi76uKOJ5wC|year=2008|publisher=Mario Lurig|isbn=978-1-4357-1590-5}}
* {{Cite book | ref = harv |last=Ullman|first=Larry|title = PHP for the Web: Visual QuickStart Guide|url=http://books.google.com/books?id=A_ivap-0XucC|year=2009|publisher=Peachpit Press|isbn=978-0-321-61744-6}}
* {{Cite book | ref = harv |last1last=Welling|first1first=Luke|last2=Thomson|first2=Laura|title = PHP and MySQL Web Development|url=http://books.google.com/books?id=G4dTRyvpfhoC|year=2003|publisher=Sams Publishing|isbn=978-0-672-32525-0}}
* {{Cite book | ref = harv |last=Cobo|first=Ángel|title = PHP y MySQL: Tecnología para el desarrollo de aplicaciones web.|url=http://books.google.com/books?id=zMK3GOMOpQ4C|year=2005|publisher=Ediciones Díaz de Santos|isbn=978-84-7978-706-6}}
* {{Cite book | ref = harv |last1last=Atkinson|first1first=Leon|last2=Suraski|first2=Zeev|title = Core PHP Programming|url=http://books.google.com/books?id=e7D-mITABmEC|year=2004|publisher=Prentice Hall Professional|isbn=978-0-13-046346-3}}
 
{{refend}}
=== Додатна литература ===
* {{cite journal |quote=What’s the Absolute Minimum I Must Know About PHP? |url= https://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/ |title = What is Code? |authorlast=Paul Ford |first=Paul|date = 11. 066. 2015. |journal=[[Bloomberg Businessweek]] }}
 
== Спољашње везе ==
Преузето из „https://sr.wikipedia.org/wiki/PHP