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

Садржај обрисан Садржај додат
Спашавам 8 извора и означавам 0 мртвим. #IABot (v2.0beta14)
Ред 311:
</source>
 
За добијање вредности одређене константе користи се функција ''constan()'', којој се прослеђује име константе, а као резултат враћа вредност константе или null ако константа није дефинисана.{{чињеница| date = 09. 2018.}} За добијање вредности свих дефинисаних константи може се користити функција ''get_defined_constants''.<ref>[http://www.php.net/manual/sr/function.get-defined-constants.php PHP.net: get_defined_constants, 20. август 2011, пристпу 28. октобар 2012]</ref> У -{PHP}- језику постоји велики број већ предефинисаних константи<ref>[{{Cite web |url=http://php.net/manual/sr/reserved.constants.php |title=PHP.net: Предефинисане константе, 20. август 2011, приступ 29. октобар 2012] |access-date=29. 10. 2012 |archive-url=https://web.archive.org/web/20140721043808/http://php.net/manual/sr/reserved.constants.php |archive-date=21. 07. 2014 |dead-url=yes |df= }}</ref>, које могу слободно да се користе у било ком делу програма.
 
=== Изрази ===
Ред 419:
==== Приоритет оператора ====
 
Када у једном изразу постоји комбинација више оператора, оне се извршавају редоследом који зависи од њихових приоритета и асоцијативности.<ref name=php_prioriteti>[{{Cite web |url=http://php.net/manual/sr/language.operators.precedence.php |title=PHP.net: Приоритет оператора, 20. август 2011, приступ 4. новембар 2012] |access-date=04. 11. 2012 |archive-url=https://web.archive.org/web/20120911143203/http://www.php.net/manual/sr/language.operators.precedence.php |archive-date=11. 09. 2012 |dead-url=yes |df= }}</ref> Редослед приоритета је:<ref name=php_prioriteti/>
 
{| class="wikitable" style="background: white;"
Ред 1.223:
</code>
која има четири могућа параметра, од којих су два обавезна и најчешће се користе:
* име датотеке се претпоставља да се ради о некој доступној [[Униформни ресурсни локатор|веб адреси]], која се тражи уз помоћ управљача [[интернет протокол|протокола]], односно омотача ({{јез-ен|wrapper}}).<ref>[{{Cite web |url=http://php.net/manual/sr/wrappers.php |title=PHP.net: Подржани протоколи и омотачи, 20. август 2011, приступ 8. новембар 2012] |access-date=09. 11. 2012 |archive-url=https://web.archive.org/web/20130807162907/http://www.php.net/manual/sr/wrappers.php |archive-date=07. 08. 2013 |dead-url=yes |df= }}</ref>
* начин приступања датотеци може да има једну од следећих вредности:
 
Ред 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>[{{Cite web |url=http://php.net/manual/sr/language.oop5.final.php |title=PHP.net: Final Keyword, 20. август 2011, приступ 2. новембар 2012] |access-date=16. 11. 2012 |archive-url=https://web.archive.org/web/20140319070236/http://www.php.net/manual/sr/language.oop5.final.php |archive-date=19. 03. 2014 |dead-url=yes |df= }}</ref> Док свака класа родитељ може имати више изведених класа, свака изведена класа може имати само једног родитеља, односно, наслеђивање је једноструко. За разлику од других програмских језика<ref name="младен">{{Cite book| last = Gogala| first = 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.555:
</code>
 
због чега је неопходно да родитељска класа буде претходно декларисана, пре било које изведене класе<ref name="наслеђивање">[{{Cite web |url=http://php.net/manual/sr/language.oop5.inheritance.php |title=PHP.net Object Inheritance, 20. август 2011, приступ 2. новембар 2012] |access-date=02. 11. 2012 |archive-url=https://web.archive.org/web/20140721060700/http://php.net/manual/sr/language.oop5.inheritance.php |archive-date=21. 07. 2014 |dead-url=yes |df= }}</ref> и њен код мора да буде доступан изведеној класи<ref name="линк-ооп" />. Родитељска класа најчешће се пише у посебној датотеци, што је потребно навести на самом почетку, помоћу наредбе за коришћење спољашњих датотека пре декларисања изведене класе.
 
Осим тога, у изведеној класи наводе се само нови или они атрибути и методе из родитељске класе, које је потребно изменити. Истоимене методе наведене у изведеној класи неће се извршити у родитељској класи, осим ако се у изведенеој класи сепецијално не наведе позив на родитељску методу.<ref name="наслеђивање" /> За позивање метода родитељсе класе (укључујући и методу конструктор) из изведене класе, користи се кључна реч '''parent''', уместо имена родитељске класе, а иза кључне речи следе две двотачке и име методе, коју треба извршити.<ref>[{{Cite web |url=http://php.net/manual/sr/keyword.parent.php |title=PHP.net: parent, 20. август 2011, приступ 6. новембар 2012] |access-date=06. 11. 2012 |archive-url=https://web.archive.org/web/20140103092243/http://www.php.net/manual/sr/keyword.parent.php |archive-date=03. 01. 2014 |dead-url=yes |df= }}</ref>
 
<source lang="php">
Ред 1.660:
==== Интерфејси ====
 
'''[[Интерфејс]]и''' ({{јез-ен|interfaces}}) су својеврсна скица или шаблон<ref name="Јава_2" /> састављен од јавних апстрактних метода, при чему се методе у интерфејсу декларишу, не садрже никакве детаље око њиховог извршавања, наводе се само имена метода и параметри. Исто као и код [[#Апстрактне класе|апстрактних класа]], од интерфејса се не могу стварати [[#Класе и објекти|објекти]]. Интерфејси служе искључево за дефинисање оне групе метода које треба да постоје у свакој класи у којима се интерфејс примењује, односно имплементира ({{јез-ен|implement}}). За декларацију интерфејса користи се кључна реч '''interface'''. Осим метода, интефејси могу да садрже и [[#Константе|константе]].<ref name="интефејс">[{{Cite web |url=http://php.net/manual/sr/language.oop5.interfaces.php |title=PHP.net: Object Interfaces, 20. август 2011, приступ 7. новембар 2012] |access-date=08. 11. 2012 |archive-url=https://web.archive.org/web/20140721044326/http://php.net/manual/sr/language.oop5.interfaces.php |archive-date=21. 07. 2014 |dead-url=yes |df= }}</ref> Исто као и класе, интерфејси могу да [[#Наслеђивање|наслеђују]] један другог.
<code>
<source lang="php">
Ред 1.791:
Ако се услов за хватање не испуни, изузетак бива избачен, односно прослеђен на више родитељске блокове, где се очекује да постоји контрола. У случају да грешка не може да се ухвати ни на једном нивоу, долази до грешке ({{јез-ен|fatal error}}), која зауставља извршавање скрипте. Ради избегавања неконтролисаних изузетака, може да се дефинише управљање изузецима уз помоћ функције <code>'''''set_exception_handler'''''</code>.<ref>[http://www.php.net/manual/sr/function.set-exception-handler.php PHP.net: set_exception_handler, 20. август 2011, приступ 15. новембар 2012]</ref> или управљање грешкама <code>''set_error_handler''</code><ref>[http://www.php.net/manual/sr/function.set-error-handler.php PHP.net: set_error_handler, 20. август 2011, приступ 15. новембар 2012]</ref>
 
Подаци добијени уз помоћ функција за руковање изузецима, односно грешкама, могу се на контролисан начин приказати кориснику на екрану, регистровати у датотеци или послати преко електронске поште, помоћу функције <code>''error_log''</code><ref>[{{Cite web |url=http://php.net/manual/sr/function.error-log.php |title=PHP.net: error_log, 20. август 2011, приступ 15. новембар 2012] |access-date=16. 11. 2012 |archive-url=https://web.archive.org/web/20120409151844/http://php.net/manual/sr/function.error-log.php |archive-date=09. 04. 2012 |dead-url=yes |df= }}</ref> или помоћу истоимене опције у конфигурацијској датотеци <code>php.in</code><ref name="подешавања">[http://www.php.net/manual/sr/errorfunc.configuration.php PHP.net: Подешавања у току извршавања, 20. август 2011, приступ 15. новембар 2012]</ref> Врсте грешака које ће се на овај начин контролисати зависе од параметра <code>''error_reporting''</code>, док се приказивање на екрану може подесити помоћу опције <code>''display_errors''</code>, што је корисно приликом проба и депурације кода, али се у крајњој верзији за клијената радије препоручује опција <code>''log_errors''</code>, навођење путање регистра у конфигурацијској датотеци <code>php.ini</code>.<ref name="подешавања" />
 
Управљање грешкама уз помоћ изузетака доста је јасније и лакше од класичног начина, међутим, као термин у -{PHP}--у , он је још увек недовољно развијен, јер изузеци нне искачу аутоматски, не генерише их интерпретатор, за разлику од неких других објектно-оријентисаних језика, који у ту сврху пружају далеко веће могућности.<ref name="ЦАЕ" />
Преузето из „https://sr.wikipedia.org/wiki/PHP