Ako začať s PHP – tutoriál pre začiatočníkov
PHP je jeden z najbežnejších programovacích jazykov pre programovanie na strane servera. Postupom času sa stal neoddeliteľnou súčasťou moderných webových stránok a internetových technológií. Napriek tomu môže byť zvládnutie PHP pre začiatočníkov náročné. V tomto tutoriáli PHP vám ukážeme základy tohto populárneho programovacieho jazyka a jeho najdôležitejšie operátory, slučky a funkcie.
Čo potrebujete mať pred začatím tutoriálu PHP
Náš tutoriál je určený predovšetkým pre začiatočníkov. Základné znalosti moderného webového vývoja a HTML však môžu byť užitočné. Ak chcete sledovať a reprodukovať príklady na svojom počítači, uistite sa, že máte pripravené nasledujúce veci:
- Webový server vrátane interpretéra PHP
- Inštalovaný PHP
- Webový prehliadač
- Textový editor
Ako server odporúčame lokálne testovacie prostredie XAMPP, ktoré Apache Friends poskytuje bezplatne pre operačné systémy Windows, Linux a macOS. XAMPP je čistý testovací server. Weboví vývojári môžu tento softvér použiť na jednoduché nastavenie testovacích prostredí pre skripty, HTML stránky a štýly. Bezpečná prevádzka webového servera na internete však nie je zaručená. Podrobné inštrukcie na inštaláciu nájdete v našom tutoriáli XAMPP.
Aká je syntax PHP?
Po nastavení lokálneho webového servera (napríklad pomocou XAMPP) je dobré otestovať, či je PHP správne nainštalované a pripravené na spúšťanie skriptov. Skript je program, ktorý nie je skompilovaný do binárneho kódu. Namiesto toho sa spúšťa prostredníctvom interpretéra. Otvorte svoj obľúbený textový editor a použite nasledujúci skript PHP:
<?php
phpinfo();
?>php
Skripty PHP majú špecifickú štruktúru. Otváracia značka PHP <?php iniciujeprostredie skriptu. Nasleduje skutočný kód PHP vo forme príkazov. V uvedenom príklade ide o volaniefunkciephpinfo(). Väčšina funkcií PHP vyžaduje jeden alebo viacero parametrov, ktoré sú uzavreté v zátvorkách. Prephpinfo() sú tieto parametre voliteľné:phpinfo(INFO_ALL). Každý príkaz končí bodkočiarkou (;). Na ukončenie skriptu použite uzatváraciu PHP značku:?>.
Funkcie sú podprogramy, ktoré umožňujú externé spracovanie častí programového kódu. Aby sa zabránilo opakovaniu, opakujúce sa úlohy je možné definovať raz ako funkciu a potom ich volať pomocou názvu funkcie. Weboví vývojári na tento účel používajú preddefinované funkcie PHP alebo vytvárajú vlastné podprogramy.
Uložte textový súbor pod názvom test vo formáte .php (skript PHP) a spustite webový server. Ak používate testovacie prostredie XAMPP, uložte súbor test.php do adresára XAMPP v priečinku htdocs (C:\xampp\htdocs).
K vzorovému súboru sa dostanete prostredníctvom nasledujúcej adresy URL vo webovom prehliadači: http://localhost/test.php. Ak používate alternatívny webový server alebo individuálnu konfiguráciu softvéru XAMPP, vyberte adresu URL podľa príslušnej cesty k súboru.
Keď zadáte URL http://localhost/test.php, webový prehliadač požiada webový server o súbor test.php. Apache HTTP Server (alebo akýkoľvek iný typ webového servera, ktorý používate) načíta súbor z príslušného adresára. Prípona .php znamená, že súbor obsahuje kód PHP. V tomto momente sa aktivuje interpret PHP, ktorý je integrovaný do webového servera. Spracuje dokument a narazí na otváraciu značku PHP <?php, ktorá signalizuje začiatok kódu PHP. Interpret pokračuje vo vykonávaní kódu PHP a generuje výstup HTML, ktorý webový server odošle webovému prehliadaču na zobrazenie. Ak bol PHP nainštalovaný správne, vykonanie skriptu bude mať za následok nasledujúcu webovú stránku:

Funkcia phpinfo() je skratka pre predvolenú funkciu phpinfo( INFO_ALL ). Táto funkcia vypíše podrobné informácie o konfigurácii PHP vášho webového servera. Ak sa nepodarí nájsť žiadnu verziu PHP, webový prehliadač zobrazí chybovú správu alebo odošle kód PHP do prehliadača bez jeho interpretácie.
„Hello World!“ – Ako vypísať text pomocou echo
Po úspešnej inštalácii PHP je čas napísať svoj prvý skript. Na to môžete použiť PHP echo. Na rozdiel od phpinfo() nie je echo funkcia. Je to skôr jazykový konštrukt, ktorý umožňuje výstup nasledujúceho reťazca ako text.
Jazykové konštrukcie sú príkazy používané v PHP na riadenie toku programu. Okrem echo, jazykové konštrukcie zahŕňajú príkazy ako if, for, do, include, return, exit alebo the. Na rozdiel od funkcií nie sú potrebné zátvorky.
Pre váš prvý vlastný skript vytvorte nový súbor PHP a zadajte nasledujúci kód:
<?php
echo 'Hello World!';
?>phpOtváracia značka <?php spustí prostredie skriptu. Nasleduje jazykový konštrukt echo a reťazec Hello World!, ktorý je uzavretý v jednoduchých úvodzovkách. Na ukončenie skriptu použite značku ?>. Všimnite si bodkočiarku za príkazom. Namiesto Hello World! môžete použiť akýkoľvek text.
Skript uložte ako hello.php do adresára htdocs na vašom webovom serveri. Potom otvorte súbor pomocou adresy URL http://localhost/hello.php vo vašom webovom prehliadači. Ak bol kód prenesený správne, v okne prehliadača by sa mal zobraziť reťazec, ktorý ste použili:

Akýkoľvek text, ktorý vytvoríte pomocou echo, môže podľa potreby obsahovať HTML tagy. Tieto tagy budú interpretované webovým prehliadačom v súlade so špecifikáciami HTML. Vyskúšajte si tento koncept napríklad pomocou nasledujúceho skriptu:
<?php
echo '<h1>Hello World!</h1>
<p>This is my first PHP page.</p>';
?>phpPri vyvolaní vo webovom prehliadači sa výsledok vykonania skriptu zobrazí nasledovne.

Text Hello World!, ktorý je uzavretý v <h1> značkách, je webovým prehliadačom interpretovaný ako primárna hlavička. Nasleduje automatický riadkový zlom a textový odsek medzi značkami <p>.
V závislosti od vašich požiadaviek môžete echo používať buď s jednoduchými úvodzovkami (’) alebo s dvojitými úvodzovkami (“). Ak vypíšete len text, výber úvodzoviek nie je dôležitý. Tento rozdiel je však významný pri práci s premennými PHP.
Premenné
Konštrukcia jazyka echo ponúka viac než len zobrazenie textu. Zatiaľ čo prezentácia textu sa už dá efektívne realizovať pomocou HTML, skutočná výhoda použitia konštrukcie jazyka PHP echo spočíva v jej schopnosti dynamicky vytvárať text pomocou premenných.
Používatelia PHP sa často stretávajú s premennými v nasledujúcom formáte: $example
Každá premenná sa skladá zo znaku dolára ($) nasledovaného názvom premennej. Premenné sa používajú v skriptoch PHP na začlenenie externých údajov do webových stránok. Môžu zahŕňať rôzne typy hodnôt, od základných čísel a reťazcov až po kompletné texty alebo štruktúry dokumentov HTML. PHP rozlišuje sedem rôznych typov premenných:
| Variabilný typ | Popis |
|---|---|
| Reťazec | Reťazec je sekvencia znakov. Môže predstavovať slovo, frázu, časť textu alebo dokonca celý HTML kód webovej stránky. |
| Celé číslo | Celé číslo je celé číslo bez desatinných miest. Môže byť kladné alebo záporné. |
| Plávajúca desatinná čiarka | Číselný údaj je číslo s desatinnou čiarkou. Ide o číselnú hodnotu s desatinnými miestami. PHP podporuje až 14 číslic za desatinnou čiarkou. |
| Boolean | Booleovské premenné sú výsledkom logických operácií a majú len dve hodnoty: TRUE (pravda) a FALSE (nepravda). Tento typ premennej sa používa pri práci s podmienkami. |
| Pole | Pole je premenná, ktorá môže obsahovať viacero prvkov. Je to zoskupenie viacerých podobne štruktúrovaných údajov, ktoré boli kombinované do poľa. |
| Objekt | Typ premennej objekt umožňuje programátorom definovať vlastné typy údajov. Používa sa v objektovo orientovanom programovaní. Do tohto tutoriálu PHP sme zahrnuli premenné objektu. |
| NULL | Hodnota NULL predstavuje premennú bez hodnoty. Pre premenné tohto typu je NULL jedinou možnou hodnotou. |
Centralizácia obsahu sa zvyčajne spravuje prostredníctvom databázových systémov. Variabilné hodnoty však možno priradiť aj priamo v skripte. Tento typ priradenia používa nasledujúci vzor:
$example = "value";phpZa znakom dolára nasleduje názov premennej (v tomto prípade example). Je prepojený znakom rovná sa (=) s hodnotou uzavretou v úvodzovkách. Hodnoty premenných typu integer a float sa zapisujú bez úvodzoviek (napríklad $example = 24;a $example= 2.7;).
PHP poskytuje flexibilitu pri pomenúvaní premenných. Platia však určité obmedzenia:
- Každá premenná začína znakom dolára.
- Názov premennej je akýkoľvek reťazec písmen, čísiel a podčiarkovníkov (napríklad $example_1).
- Platný názov premennej vždy začína písmenom alebo podčiarknutím ($example1 alebo $_example), nikdy číslicou (nesprávne: $1example).
- PHP rozlišuje veľké a malé písmená. Skriptovací jazyk rozlišuje medzi veľkými a malými písmenami ($example ≠ $Example).
- Názov premennej nesmie obsahovať medzery ani riadkové zlomy (nesprávne: $example 1).
- Reťazce vyhradené PHP na iné účely nemožno použiť ako premenné definované používateľom (napr. ,$this).
Ilustrujme to na príklade:
<?php
$author = "John Doe";
echo "<h1>Hello World!</h1>
<p>This dynamic web page was created by $author.</p>";
?>phpZa otváracou značkou PHP nasleduje definícia premennej. V tomto prípade je premennej $author priradená hodnota John Doe. Po spustení skriptu je každá inštancia premennej $author v skripte nahradená hodnotou John Doe v prostredí skriptu. Vizuálne znázornenie tohto procesu vo webovom prehliadači je ilustrované na nasledujúcom obrázku:

Ak má byť webová stránka pripísaná Maxovi Mustermannovi, nemeckému kolegovi Johna Doe, a nie Johnovi Doe, môžete to opraviť zmenou premennej $author.

Toto je obzvlášť efektívne, ak sa premenná vyskytuje vo skripte viackrát. V takomto prípade by bolo potrebné vykonať opravu len na jednom mieste. Konkrétne tam, kde je definovaná hodnota premennej.
To ilustruje schopnosti PHP: obsah môže byť vložený pomocou premenných. Táto charakteristika tvorí základ dynamického vývoja webových stránok. Na rozdiel od statických webových stránok, ktoré existujú ako vopred vykreslené HTML stránky, dynamické webové stránky sa generujú až v momente, keď sa na ne pristupuje. Interpreter PHP načíta rôzne prvky požadovanej webovej stránky z rôznych databáz prostredníctvom premenných a skompiluje ich do prispôsobenej HTML stránky, ktorá zodpovedá konkrétnej požiadavke.
Výhody tohto prístupu sú zrejmé. Keď sa upravia prvky webovej stránky (napr. v sekcii päty stránky), nie je potrebné ručné prispôsobovanie každej jednotlivé podstránky. Stačí aktualizovať príslušný záznam v databáze. Výsledkom je, že revízie sa automaticky uplatnia na všetky webové stránky, ktoré obsahujú príslušné údaje ako premenné. Ak je premenná definovaná viackrát v rámci skriptu, nová definícia prepíše predchádzajúcu. Následné echo vždy vypíše aktuálnu hodnotu premennej.
<?php
$author = "John Doe";
echo "<h1>Hello World!</h1>
<p>This dynamic web page was created by $author.</p>";
$author = "Max Mustermann";
echo " <p>Supported by $author.</p>";
?>php
V príklade kódu bola premenná $author najskôr priradená hodnota John Doe a potom nahradená hodnotou Max Mustermann.
Teraz sa venujme téme úvodzoviek. Na rozdiel od reťazcov, jednotlivé premenné nemusia byť uzavreté v úvodzovkách:
<?php
$author = "John Doe";
echo $author;
?>phpOkrem prípadov, keď je potrebné premennú použiť v reťazci. V takomto prípade použite dvojité úvodzovky („). Tým sa interpret PHP naučí vyhľadávať premenné v reťazci a podľa potreby ich nahradiť zodpovedajúcimi hodnotami. Reťazce uzavreté v jednoduchých úvodzovkách (’) sa interpretujú a zobrazujú ako informácie v podobe obyčajného textu, aj keď obsahujú premenné.
<?php
$author = "John Doe";
echo '<h1>Hello World!</h1>
<p>This dynamic web page was created by $author.</p>';
?>php
Možno sa teraz pýtate, čo sa stane, ak úvodzovky úplne vynecháte. V takom prípade PHP označí syntaktickú chybu.
Chybové správy a maskovanie
Ak sa vyskytnú syntaktické chyby, neexistuje platný kód PHP a interpret PHP vydá chybovú správu. To sa dá očakávať napríklad v prípade, ak použijete príkaz echo s reťazcom bez úvodzoviek:
<?php
echo Hello World!;
?>phpChybové správy vo väčšine prípadov obsahujú informácie o mieste, kde došlo k chybe, a poskytujú dôležité informácie o tom, ako ju odstrániť.

V aktuálnom príklade sa predpokladá chyba v riadku 2 nášho programového kódu. Práve tu sme vynechali úvodzovky.
Syntaxové chyby sa vyskytujú aj vtedy, keď chcete ako text vydať znaky, ktoré sú spojené s konkrétnou úlohou v PHP. Príkladom je úvodzovka (’). Takéto znaky je možné v PHP vydať ako text len vtedy, ak interpretovi oznámite, že vlastná funkcia znaku bola neutralizovaná. V prípade jednoduchých úvodzoviek existujú dva spôsoby, ako to urobiť. Môžete uzavrieť reťazec v jednoduchých úvodzovkách do dvojitých úvodzoviek alebo môžete úvodzovky zamaskovať predchádzajúcim spätným lomítkom (\):
<?php
echo '\'Hello World!\' ';
?>php
Kombinácia jednoduchých a dvojitých úvodzoviek je tiež vhodným riešením:
<?php
echo " 'Hello World!' ";
?>phpAvšak nie tento pravopis:
<?php
echo ' 'Hello World!' ';
?>phpMedzery medzi úvodzovkami boli v príkladoch vložené z dôvodu lepšej čitateľnosti.
Operátory zlučovania
Ak chcete vo skripte PHP vygenerovať viacero premenných naraz, môžete využiť doteraz nadobudnuté vedomosti a postupovať takto:
<?php
$author1 = "John Doe";
$author2 = "Max Mustermann";
echo "<h1>Hello World!</h1>
<p>This dynamic web page was created by $author1 and $author2.</p>";
?>phpJednoducho napíšte obe premenné do reťazca v úvodzovkách spolu s ostatným textom, ktorý sa má vypísať. PHP automaticky rozpozná premenné podľa znaku dolára ($) a vloží príslušné hodnoty.

Medzi programátormi je však tento postup považovaný za nečistý. Existuje programátorské pravidlo, že premenné by nemali byť súčasťou reťazca. Jedným z dôvodov je to, že mnoho programovacích jazykov vyžaduje toto oddelenie. Ešte dôležitejšie je, že PHP tiež vyžaduje oddelenie reťazca a premennej pri práci s volaniami funkcií alebo zložitejšími premennými. Z tohto dôvodu je najlepšie ich oddeľovať aj v prostom textovom výstupe, aj keď to v tomto prípade nie je úplne nevyhnutné.
Pri práci s premennými budete vždy musieť pracovať s viacerými prvkami, ktoré je potrebné zložiť dohromady počas výstupu. V PHP sa na tento účel používa operátor zloženého reťazca (.). Ak je kód napísaný „čisto“, mal by vyzerať takto:
<?php
$author1 = "John Doe";
$author2 = "Max Mustermann";
echo '<h1>Hello World!</h1>
<p>This dynamic web page was created by ' . $author1 . ' and ' . $author2 . '.</p>';
?>php
Tu máme tri reťazce a dve premenné, ktoré boli zlučené do jedného reťazca.
| Reťazec1 | Premenná1 | Reťazec2 | Premenná2 | Reťazec3 | ||||
|---|---|---|---|---|---|---|---|---|
| ’<h1>Hello World!</h1> <p>Táto dynamická webová stránka bola vytvorená ’ | . | $author1 | . | ’ a ’ | . | $author2 | . | “.</p>“ |
Je dôležité spomenúť, že operátor zlučovania spája reťazce alebo premenné bez vkladania medzier. Ak je medzera zamýšľaná, musí byť explicitne zahrnutá v úvodzovkách v reťazci, ako je ukázané v príklade.
Programátori používajú operátor zlučovania nielen na kombinovanie reťazcov a premenných pre textový výstup, ale aj na rozširovanie premenných. Nasledujúci príklad ilustruje, ako sa to dosahuje:
<?php
$example = 'Hello ';
$ example .= 'World';
echo $ example;
?>phpAk chcete rozšíriť hodnotu premennej, definujte ju znovu, ale pred znamienkom rovná sa vložte zlučovací operátor bodka (.). Toto je bežný skrátený zápis pre $example = $example . ‘world’.
PHP pripojí novú hodnotu k predtým definovanej hodnote. Ak chcete medzi týmito dvoma hodnotami medzeru, napíšte ju na koniec prvého reťazca, ako je to v príklade.

Vloženie PHP do HTML
V zásade sa interpret PHP zaujíma iba o kód, ktorý sa nachádza medzi otváracou a uzatváracou značkou PHP:
<?php [This section is parsed by the PHP interpreter] ?>
Interpreter ignoruje všetky zostávajúce časti dokumentu a bez zmien ich odošle na webový server. Vďaka tomu je možné PHP kód podľa potreby bezproblémovo začleniť do HTML dokumentov, napríklad pri tvorbe šablón pre systémy správy obsahu. Je dôležité ukladať HTML dokumenty obsahujúce kód PHP s príponou súboru PHP. V opačnom prípade sa dokument zobrazí priamo vo webovom prehliadači bez predbežného spracovania interpretom PHP. V takomto prípade by sa kód zobrazil ako text na webovej stránke.
Interpreter PHP si môžete predstaviť ako lenivého kolegu webového servera, ktorý pracuje len vtedy, keď je o to výslovne požiadaný, napr. otvorením PHP tagu.
Ak chcete kombinovať HTML a PHP, napíšte svoju HTML stránku v klasickej štruktúre dokumentu a uložte ju s príponou súboru .php:
<html lang="de">
<head>
<meta charset="utf-8">
<title>My first PHP page</title>
</head>
<body>
<h1>Hello World</h1>
<p>What is the current time and date?</p>
</body>
</html>htmlTeraz pridajte skript PHP do svojho dokumentu HTML. Uistite sa, že celý kód je vnútri značiek PHP.
<html lang="de">
<head>
<meta charset="utf-8">
<title>My first PHP page</title>
</head>
<body>
<h1>Hello World</h1>
<p>What is the current time and date?</p>
<p>Your current time and date is:
<?php
echo date("d.m.Y H:i:s");
?>.</p>
</body>
</html>htmlV tomto prípade sme zlúčili jazykovú konštrukciu echo s funkciou PHP date(), aby sme ako text na strane servera vygenerovali aktuálny dátum a čas. Parameter funkcie určuje preferovaný formát, ktorý je označený ako reťazec:
d.m.Y H:i:s = deň.mesiac.rok hodina:minúta:sekunda.
Keď webový prehliadač požiada o takýto súbor, interpret PHP najskôr spustí skript a vloží aktuálny čas ako text do dokumentu HTML. Následne webový server odošle tento dokument, ktorý sa potom zobrazí v prehliadači ako webová stránka.

Funkcia komentára PHP
Podobne ako v kóde HTML, aj v kóde PHP môžete zanechať komentáre. Komentáre v zdrojovom kóde sú interpretom PHP ignorované, pokiaľ dodržiavajú syntaktické pravidlá. PHP ponúka tri rôzne metódy komentovania .
Ak chcete označiť celý riadok ako komentár a tým ho vylúčiť z interpretácie, môžete použiť buď hashtag (#) alebo dve po sebe idúce lomítka (//). Obidve možnosti sú použité v nasledujúcom príklade kódu:
<?php
#This is a single-line comment!
echo '<h1>Hello World!</h1>
<p>This is my first PHP page.</p>';
//This is also a single-line comment!
?>phpTextový editor Notepad++ zvýrazňuje komentáre zelenou farbou. Na rozdiel od komentárov v HTML, textové časti označené ako komentáre v prostredí skriptu sa nedostanú do webového prehliadača. Tento rozdiel vzniká preto, že interpret PHP ich už počas vykonávania skriptu ignoruje.

Okrem toho môžete vkladať komentáre, ktoré sa rozprestierajú na viacerých riadkoch. Za týmto účelom označte začiatok komentára lomítkom nasledovaným hviezdičkou (/*) a koniec hviezdičkou nasledovanou lomítkom (*/).
<?php
/*
This is a multiple-line comment block
that spans over multiple
lines
*/
echo '<h1>Hello World!</h1>
<p>This is my first PHP page.</p>';
?>phpTakéto komentáre nie sú analyzované a nezobrazujú sa na webovej stránke.

Programátori používajú komentáre na štruktúrovanie zdrojového kódu svojich skriptov, zanechávajú poznámky na neskoršiu úpravu alebo pridávajú do zostavenia interné informácie, ako napríklad autora alebo dátum. Komentáre sú voliteľné a mali by sa používať s mierou, aby bola zabezpečená dobrá čitateľnosť zdrojového kódu.
Počítanie s premennými
V našom tutoriáli PHP ste sa už stretli s premennými, ktoré obsahujú predovšetkým reťazcové hodnoty. Teraz sa pozrime na premenné reprezentujúce celé čísla alebo desatinné čísla. Keď premenné ukladajú číselné hodnoty, PHP umožňuje s nimi vykonávať výpočty. Začnime sčítaním dvoch celých čísel:
<?php
$number1 = 237;
$number2 = 148;
$result = $number1 + $number2;
echo "result: " . $result;
?>phpNajskôr priradíme celé čísla 237 a 148 premenným $number1 a $number2 a potom definujeme premennú $result. Tá sa používa na uloženie súčtu premenných $number1 a $number2. Na túto operáciu použijeme aritmetický operátor +(plus). Nakoniec vygenerujeme súčet ako text pomocou konštrukcie jazykaecho. Upozorňujeme, že pri priraďovaní číselných hodnôt premenným nie je potrebné používať úvodzovky.

Nasledujúci príklad kódu ukazuje výber matematických výpočtov, ktoré je možné vykonávať na strane servera pomocou PHP. Použité operátory PHP zodpovedajú vo väčšine prípadov štandardným matematickým symbolom.
| Aritmetický operátor | Operácia | Výsledok |
|---|---|---|
| $číslo1 + $číslo2 | Sčítanie | Súčet $číslo1 a $číslo2 |
| $číslo1 - $číslo2 | Odčítanie | Rozdiel $číslo1 a $číslo2 |
| $číslo1 *$číslo2 | Násobenie | Súčin $číslo1 a $číslo2 |
| $číslo1 / $číslo2 | Delenie | Podiel $číslo1 a $číslo2 |
| $číslo1 **$číslo2 | Mocnina | $číslo2-tá mocnina $číslo1 |
<?php
$number1 = 10;
$number2 = 5;
$addition = $number1 + $number2; //addition
$subtraction = $number1 - $number2; //subtraction
$multiplication = $number1 * $number2; //multiplication
$division = $number1 / $number2; //division
$power = $number1 ** $number2; //power
?>php<?php
echo "Result of addition: " . $addition ."<br />";
echo "Result of subtraction: " . $subtraction . "<br />";
echo "Result of multiplication: " . $multiplication . "<br />";
echo "Result of division: " . $division . "<br />";
echo "10 to the 5th power (10^5): " . $power . "<br />";
echo "root of 81: " . sqrt(81) . "<br />";
?>php
Pre zložité výpočty je možné v jednom skripte kombinovať rôzne aritmetické operácie:
<?php
$number1 = 10;
$number2 = 5;
$result = 2 *$number1 + 5* $number2 - 3 * sqrt(81);
echo "Result: " . $result;
?>phpInterpreter PHP určí hodnoty premenných a vypočíta:
2 *10 + 5* 5 - 3 * √81 = 20 + 25 - 27 = 18
Funkcia sqrt() vypočíta druhá mocnina parametra v zátvorkách. Platí klasické poradie operátorov v matematike: bodka pred pomlčkou. Inštrukcia echo vypíše výsledok ako reťazec pre webový prehliadač.

PHP tiež najskôr vyhodnocuje výrazy v zátvorkách. Tentoraz budeme pracovať s číslami s pohyblivou desatinnou čiarkou:
<?php
$number1 = 2.5;
$number2 = 3.7;
$result = 2 *($number1 + 5)* ($number2 - 3) * sqrt(81);
echo "Result: " . $result;
?>php
Rovnako ako všetky bežné programovacie jazyky, aj PHP umožňuje operátorom zvyšovať alebo znižovať číselné hodnoty o hodnotu 1. Rozlišuje sa medzi operátorom pred zvýšením, operátorom pred znížením, operátorom po zvýšení a operátorom po znížení.
| Prevádzka | Operátor | Výsledok |
|---|---|---|
| Predinkrement | ++$číslo | Operátor ++ inkrementuje hodnotu premennej $číslo. Hodnota sa inkrementuje o 1. Výsledok sa vráti ako nová hodnota $číslo. |
| Predzníženie | –$number | Operátor – dekrementuje hodnotu premennej $number. Tým sa hodnota dekrementuje o 1. Výsledok sa vráti ako nová hodnota $number. |
| Post-inkrement | $number | Najskôr sa vráti aktuálna hodnota $number a potom sa zvýši o 1. |
| Post-dekrement | $number– | Najskôr sa vráti aktuálna hodnota $number a potom sa zníži o hodnotu 1. |
Najskôr si ukážeme, ako vykonávať aritmetické operácie s operátormi inkrementácie a dekrementácie, a to na príklade s preinkrementáciou. Nasledujúci skript inkrementuje hodnotu premennej $number o 1, uloží novú hodnotu do premennej $result a potom vypíše jej hodnotu ako reťazec:
<?php
$number = 0;
$result = ++$number;
echo "Result: " . $result;
?>phpAk zvýšite hodnotu 0 o 1, dostanete výsledok 1.

Na výpočet predbežného zníženia premennej $number použijeme rovnaké skripty, ale operátor predbežného zvýšenia (++) nahradíme operátorom predbežného zníženia (–):
<?php
$number = 0;
$result = --$number;
echo "Result: " . $result;
?>phpTu znížime hodnotu 0 premennej $number a dostaneme výsledok -1.

Nárast hodnoty pred a po výstupe (pred vs. po…) možno demonštrovať pomocou nasledujúceho skriptu:
<?php
$x = 0;
echo '<p>result: ' . ++$x;
echo '<br>x has the value ' . $x;
echo '<p>result: ' . $x++;
echo '<br>x has the value ' . $x, '</p>';
?>phpV oboch prípadoch dostaneme rovnaký výsledok. Pri predbežnom inkremente sa hodnota x zvýši pred výstupom v riadku 3, zatiaľ čo pri následnom inkremente sa zvýši po výstupe v riadku 5.

Ako používať superglobálne premenné $_GET a $_POST
Teraz ste sa oboznámili so základmi jazyka PHP. Viete pracovať s premennými, spájať a vykonávať výpočty. Ďalej si ukážeme kľúčovú úlohu premenných v skriptovaní.
Dôležitou funkciou skriptovacích jazykov je ich schopnosť vyhodnocovať vstupy používateľov a prenášať hodnoty do iného skriptu. PHP využíva na prenos dát superglobálnepremenné $_GET a $_POST–preddefinované systémové premenné dostupnévo všetkých rozsahoch. Ako asociatívne polia (dátové polia) ukladajú*$_GET a $_POST* súbor premenných vo forme reťazcov v premennej.
PHP polia možno prirovnať k skrini s viacerými zásuvkami. Každá z týchto zásuviek poskytuje priestor na ukladanie údajov. Aby ste mali prehľad o obsahu každej zásuvky, označíte ich názvom premennej. V závislosti od typu poľa môže byť tento identifikátor indexom alebo kľúčom. V indexovaných poliach priradíte každej zásuvke číselný index, zatiaľ čo v asociatívnych poliach označíte zásuvky pomocou reťazcového kľúča.
Superglobálne premenné $_GET a $_POST zahŕňajú súbor premenných reprezentovaných ako kľúče, ktoré umožňujú prístup k príslušným hodnotám. Budeme sa tým zaoberať podrobnejšie, keď sa budeme hlbšie venovať superglobálnym premenným $_GET a $_POST.
Prenos údajov prostredníctvom $_GET
Superglobálna premenná $_GET predstavuje pole premenných, ktoré sa odovzdávajú skriptu PHP pomocou URL.
Ak trávite čas na blogoch alebovinternetovýchobchodoch a internetových fórach, možno ste si všimli niektoré podivné URL adresy. Zvyčajne sú štruktúrované podľa nasledujúceho schématu:
http://hostname/ordner/filename.php?variablenname=variablevalue
V prípade blogu by schéma mohla vyzerať takto:
http://www.example-blog.com/index.php?id=1
Rozloženie takejto URL adresy je relatívne jednoduché. Na webovom serveri s doménou example-blog.com sa nachádza súbor s názvom index.php. Tento súbor sa používa na vytváranie dynamických webových stránok a zvyčajne obsahuje kód HTML a PHP spolu s odkazmi na externé šablónové súbory a štýly – v podstate všetky komponenty potrebné na zobrazenie webovej stránky.
Prídavok id=1 doURL adresy je bežným spôsobom, ako zistiť, či je webová stránka dynamická. Nachádza sa za otáznikom (?) v URL adrese. Táto zložka je známa ako reťazec HTTP dotazu a obsahuje premennú (id) a hodnotu (1), ktoré sú spojené znamienkom rovná sa (=). Parametre URL tohto druhu sa používajú na generovanie dynamických webových stránok, načítanie obsahu databázy a spúšťanie príslušných šablón.
Dynamické webové stránky umožňujú oddelenie obsahu a prezentácie. Hoci index.php obsahuje informácie o štruktúre webovej stránky, stále musí byť naplnený obsahom. Ten je zvyčajne uložený v databáze a je k nemu možné pristupovať pomocou parametrov v reťazci HTTP dotazu. V príklade URL index.php odovzdáva parameter id=1. Ten určuje, ktorý obsah sa má prečítať z databázy a načítať do index.php. V kontexte blogu to môže byť ID článku, v prípade fóra konkrétny príspevok. V prípade internetového obchodu to môže byť konkrétny produkt.
Ak URL obsahuje viac ako jeden parameter, sú tieto parametre spojené znakom „&“.
www.example-blog.com/index.php?page=article&id=1
Nižšie vám ukážeme, ako používať $_GET. V tomto príklade nie je potrebné používať databázu. V nasledujúcom skripte používame superglobálnu premennú $_GET na načítanie hodnôt premennýchfirstnameandlastname z reťazca HTTP dotazu a zapíšeme ich do premenných PHP $variable1 a $variable2:
<?php
$variable1 = $_GET['firstname'];
$variable2 = $_GET['lastname'];
echo "Hello " . $variable1 . " " . $variable2 . "!";
?>phpSkript je volaný prostredníctvom nasledujúcej URL adresy:
localhost/hello.php?firstname=John&lastname=Doe.
Parametrefirstname=Johnandlastname=Doe boli odovzdané. Výstup hodnôt sa vykonáva rovnako ako predtým pomocou jazykového konštruktu echo.

Prenos dát prostredníctvom $_GET nevyhnutne vedie k tomu , že prenesené dáta sú viditeľné v adresnom riadku. To znamená, že odovzdané parametre je možné vysledovať. Výhodou je, že premenné je možné uložiť v hypertextových odkazoch. Okrem toho majú používatelia možnosť uložiť si URL adresy vrátane reťazca HTTP dotazu ako záložky vo svojom prehliadači.
Skutočnosť, že parametre GET sú uvedené v URL v podobe obyčajného textu, však spôsobuje, že táto metóda nie je kompatibilná s prenosom citlivých údajov, ako sú údaje generované online formulármi. Okrem toho množstvo údajov, ktoré je možné preniesť pomocou $_GET, je obmedzené maximálnou dĺžkou URL.
Tieto obmedzenia môžete obísť pomocou metódy HTTP POST. Dáta, ktoré sa prenášajú pomocou tejto metódy, nájdete v superglobálnej premennej $_POST.
Prenos údajov prostredníctvom $_POST
Zatiaľ čo v metóde GET sa údaje prenášajú ako parameter URL, v prípade $_POST sa prenos údajov uskutočňuje v tele HTTP požiadavky. To umožňuje prenášať aj veľké množstvá údajov z jedného skriptu do druhého.
Hlavnou oblasťou použitia metódy HTTP POST je prenos údajov z HTML formulárov. Ukážeme to na príklade prihlásenia sa k odberu noviniek.
Na to vytvorte nový súbor PHP s názvom page1.php a skopírujte nasledujúci blok kódu:
<form method="post" action="page2.php" >
Please send your newsletter to: <br />
Your name: <input type="text" name="first name" /><br />
Your surname: <input type="text" name="lastname" /><br />
Your email address: <input type="text" name="email" /><br />
<input type="submit" value="Send form" />
</form>phpHTML prvok <form> sa používa na vytváranie formulárov. Začiatočná značka obsahuje dva atribúty:method a action. Atribútom method definujete spôsob prenosu, v tomto prípade HTTP-POST. V atribúte action uložíte URL skriptu, ktorý prijíma všetky údaje zadané prostredníctvom nasledujúcich vstupných polí. Príklad ukazuje HTML formulár s tromi vstupnými prvkami (input type=„text“) a tlačidlom na odoslanie (input type=„submit“). Súbor page2.php je definovaný ako príjemca údajov.
Na ilustráciu prenosu dát pomocou $_POST použijeme jednoduchý skript na vyhodnotenie dát formulára, ktorý ukladá odoslané hodnoty ako premenné PHP a vypisuje ich v textovej forme. Na to vytvorte súbor page2.php a vložte do neho nasledujúci programový kód:
<?php
$name = $_POST["name"];
$surname = $_POST["lastname"];
$email = $_POST["email"];
echo "Hello " . name . " " . $lastname . ", <br />
You have registered with the following e-mail address:" . $email . ".";
?>phpUložte dva súbory PHP do priečinka htdocs vášho testovacieho servera a vyvolajte stránku page1.php z nasledujúcej adresy URL vo vašom webovom prehliadači: http://localhost/page1.php. Váš prehliadač vám teraz zobrazí interaktívne webové rozhranie vášho formulára HTML.

Zadajte akékoľvek prihlasovacie údaje a stlačte tlačidlo Odoslať, aby ste preniesli premenné z jedného skriptu do druhého. Po potvrdení vstupov na stránke page1.php budete okamžite presmerovaní na stránku page2.php. V okne prehliadača sa zobrazí výsledok vykonania skriptu na základe odoslaných údajov.

Údaje zadané používateľom prostredníctvom vstupných polí na stránke page1.php budú načítané stránkou page2.php prostredníctvom:
$_POST["input field name"]
Riadok $firstname = $_POST[„firstname”] načíta vstup v poli firstname a uloží ho do premennej $firstname. Premenná $firstname môže byť následne vypísaná ako reťazec pomocou echo.
Ako používať porovnávacie operátory PHP a konštrukciu IF
Doposiaľ sme definovali premenné, prenášali ich z jedného skriptu do druhého a vypisovali ich ako reťazce. V ďalšom kroku sa naučíte viazať vykonávanie fragmentov kódu na určité podmienky.
Jazykový konštrukt if vám umožňuje písať skripty takým spôsobom, že príkazy nadobudnú platnosť len vtedy, ak je splnená podmienka, ktorú definujete, napríklad zadanie správneho hesla.
Podmienky sú v PHP definované podľa nasledujúceho základného rámca:
<?php
if(expression)
{
statement;
}
?>phpZnie to takto: Ak je splnená podmienka uvedená vo výraze, príkaz bude vykonaný. Podmienka je vždy splnená, ak konštrukcia if vráti výsledok TRUE (pravda). V opačnom prípade sa považuje za FALSE (nepravda). V takomto prípade bude príkaz preskočený.
Konštrukcia if zvyčajne kontroluje, či hodnota premennej zodpovedá tomu, čo bolo definované v podmienke. Táto kontrolná štruktúra sa zvyčajne realizuje na základe porovnávacích operátorov.
Porovnávacie operátory
Porovnávacie operátory sa používajú pri formulovaní podmienok, aby sa dva argumenty dostali do logického vzťahu, ktorý možno vyhodnotiť ako pravdivý (TRUE) alebo nepravdivý (FALSE). Keď sa porovnávacie operátory používajú v riadiacich štruktúrach PHP, aplikujú sa na dve premenné vo výraze konštrukcie if:
if ($a == $b)
{
statement;
}phpZ jazykového hľadiska je kontrolná štruktúra nasledovná: ak je premenná $a rovná premennej $b, potom sa vykonajú príkazy definované v príkaze.
Porovnávacie operátory PHP sú založené na programovacom jazyku C a ich zápis sa výrazne líši od klasických matematických symbolov. Prehľad nájdete v tabuľke nižšie.
| Porovnávací operátor | Popis | Podmienka |
|---|---|---|
| == | rovná sa | Podmienka je splnená, ak $a a $b majú rovnakú hodnotu. |
| === | je identické | Podmienka je splnená, ak $a a $b majú rovnakú hodnotu a patria do rovnakého dátového typu. To možno ilustrovať na príklade, kde sa celé číslo (1) porovnáva s reťazcom („1”): 1 == „1“ //TRUE 1 === „1“ //FALSE Pre podmienky, ktoré vyžadujú, aby boli dve premenné rovnaké, je najlepšie vždy používať relačný operátor === (je identický). |
| != | je nerovnaké | Podmienka je splnená, ak $a a $b majú nerovnaké hodnoty. |
| !== | nie je identické | Podmienka je splnená, ak $a a $b majú nerovnaké hodnoty alebo patria do rôznych dátových typov. |
| `< * | je menšie ako | Podmienka je splnená, ak hodnota* $a je menšia ako hodnota $b*. |
| *>` | je väčšia ako | Podmienka je splnená, ak je hodnota* $a väčšia ako hodnota $b*. |
| <= | je menšia alebo rovná | Podmienka je splnená, ak je hodnota $a menšia ako hodnota $b alebo ak majú $a a $b rovnakú hodnotu. |
| >= | je väčšia alebo rovná | Podmienka je splnená, ak je hodnota $a väčšia ako hodnota $b alebo ak $a a $b majú rovnakú hodnotu. |
Nasledujúci skript by mal objasniť túto kontrolnú štruktúru. Porovnávajú sa dve celé čísla. Používa sa porovnávací operátor < (je menšie):
<?php
$number1 = 10;
$number2 = 20;
if($number1 < $number2) {
echo "The condition is fulfilled";
}phpDefinujeme premenné $number1 a $number2 a priradíme im hodnoty10 a 20. Následne nastavíme podmienku: ak je $number1 menšie ako $number2, mal by sa vypísať reťazec uvedený v príkaze echo.
Výsledok vykonania skriptu obsahuje odpoveď: 10 je menšie ako 20. Konštrukcia if vráti výsledok TRUE. Podmienka je splnená.

Ak chcete definovať príkazy, ktoré sa vykonajú, ak nie je splnená podmienka, pridajte do príkazu if jazykovú konštrukciu else, čím vytvoríte príkaz if-else v jazyku PHP:
<?php
if(condition a)
{
statement b;
}
else
{
statement c
}
?>phpTento skript kontroluje, či podmienka a vráti hodnotu TRUE alebo FALSE. Ak je podmienka a splnená (TRUE), vykoná sa príkaz b. Ak podmienka a nie je splnená (FALSE), príkaz b sa preskočí a namiesto toho sa vykoná príkaz c.
Rozšírme náš skript o konštrukciu else a vymeňme porovnávací operátor < (je menší) za == (je rovnaký):
<?php
$number1 = 10;
$number2 = 20;
if($number1 == $number2)
{
echo "The condition is fulfilled";
}
else
{
echo "The condition is not fulfilled";
}
?>phpTentoraz konštrukcia if vráti hodnotu FALSE. Hodnota premennej $number1 nie je rovnaká ako hodnota $number2. Podmienka nie je splnená. Preto sa príkaz uvedený pod if nevykoná, ale príkaz definovaný pod else áno.

Na viazanie vykonania fragmentu kódu na dve rovnaké hodnoty sa v PHP používa dvojité znamienko rovná sa (==). Jednoduché znamienko rovná sa (=) sa používa na priradenie hodnôt premenným.
Podmienky môžete negovať umiestnením výkričníka (!) pred výrazom.
<?php
$number1 = 10;
$number2 = 20;
if ($number1 == $number2)
{
echo "The numbers are the same.";
}
if (!($number1 == $number2))
{
echo "The numbers are not equal.";
}
?>phpTento príklad zdôrazňuje podmienku $number1 == $number2 a jej negáciu. !($number1 == $number2) je ekvivalentné ($number1 != $number2).
Praktickou aplikáciouifandelse je dotaz na heslo založený na formulári HTML. Môžeme to simulovať pomocou našich súborov PHP page1.php a page2.php.
Otvorte stránku 1.php a vložte nasledujúci kód:
<form action="page2.php" method="post">
Please enter your password: <input type="password" name="password" />
<input type="submit" value="send" />
</form>phpŠtruktúra zodpovedá predtým vytvorenému formuláru. Tentoraz však stačí jedno vstupné pole: požiadavka na heslo. Rovnako ako predtým sa vstup používateľa odovzdá skriptu page2.php.
Toto môžeme prispôsobiť pomocou nasledujúceho kódu tak, aby sa zadávané heslo porovnalo s uloženým heslom:
<?php
$password = $_POST["password"];
if($password=="qwertz123")
{
echo "The password was correct";
}
else
{
echo "The password was incorrect";
}
?>phpKód možno vysvetliť takto: najskôr priradíme hodnotu premennej $password v riadku 2, ktorú získame pomocou metódy HTTP POST. Potom definujeme nasledujúcu kontrolnú štruktúru: konštrukcia if v riadku 3 by mala skontrolovať, či hodnota premennej $password zodpovedá reťazcu qwertz123. Ak áno, vypíše sa reťazec The password was correct (Heslo bolo správne ). Ak if vráti výsledok FALSE, použije sa else v riadku 7 a vypíše sa reťazec The password was incorrect (Heslo bolo nesprávne).
Teraz voláme skript page1.php prostredníctvom URL http://localhost/page1.php.

Prehliadač zobrazí webové zobrazenie nášho formulára na zadanie hesla v HTML. Zadáme heslo quertz123 definované v skripte page2.php a klikneme na tlačidlo Odoslať.

Webový prehliadač nás automaticky presmeruje na stránku page2.php, zatiaľ čo kontrolná štruktúra if porovnáva náš vstup s uloženým heslom. Dospieva k výsledku*„qwertz123 == qwertz123* je *TRUE“*a potom vypíše reťazec Heslo bolo správne.
Vyskúšajte si to sami a uvidíte, čo sa stane, keď do vstupného poľa zadáte iné heslo.
Logické operátory
Podmienky, ktoré definujete pomocou porovnávacích operátorov vo výraze konštrukcie if, môžete v prípade potreby kombinovať s inými podmienkami v tom istom výraze. PHP používa logické operátoryAND a OR.
| Úzka väzba | Slabé puto | Popis | ||
|---|---|---|---|---|
| && | AND | Obe podmienky spojené s operátorom musia byť PRAVDA. | ||
| *\ | \ | * | OR | Len jedna z dvoch podmienok spojených s operátorom musí byť PRAVDA. |
Na kombinovanie podmienok môžete v PHP použiť logické operátory s pevným a slabým viazaním. V praxi použitie jedného z týchto dvoch zápisov samostatne neprinesie žiadny badateľný rozdiel. Ak skombinujete oba zápisy, zistíte, že OR a || sú silnejšie viazané ako AND a OR. Takisto AND a&& sú silnejšie viazané ako OR a ||. Je to porovnateľné s poradím operátorov známym z matematických operátorov (napr. bodka pred pomlčkou: *je silnejšie viazaná ako +).
Praktickým príkladom je požiadavka na zadanie hesla. Prihlasovacie údaje zvyčajne obsahujú tajné heslo a používateľské meno. Prihlásenie je úspešné len vtedy, ak oba údaje zodpovedajú údajom uloženým v systéme.
Teraz opäť otvoríme formulár na zadávanie hesla v súbore Page1.php a pridáme pole na zadávanie používateľského mena:
<form action="page2.php" method="post">
Username: <input type="text" name="username" /><br />
Password: <input type="password" name="password" /><br />
<input type="submit" value="Submit" />
</shape>phpV ďalšom kroku musíme upraviť kontrolnú štruktúru konštrukcie if. Použijeme logický operátor AND na prepojenie podmienky pre dotaz na heslo s podmienkou pre dotaz na používateľské meno.
<?php
$username = $_POST["username"];
$password = $_POST["password"];
if($username=="John Doe" AND $password=="qwertz123")
{
echo "Welcome to the internal area" . $username . "!";
}
else
{
echo "Access failed";
}
?>phpV našom skripte page2.php sa hodnoty preusername a password získavajú a ukladajú do premenných $username a $password. Výraz v konštrukcii if teraz obsahuje dve podmienky spojené logickým operátorom AND.Aby ifvrátilvýsledok TRUE, musia byť splnené obe podmienky (*username==„John Doe”*a $password==„qwertz123”**).
Pri načítaní používateľského mena z vstupného poľa username ho môžeme priamo použiť v textovom výstupe pomocou príkazu echo. Za privítaním Welcome to the internal area nasleduje hodnota v $username. Ak nie je splnená ani jedna z týchto dvoch podmienok, textový výstup bude: Access failed.

Logické operátory možno kombinovať ľubovoľným spôsobom. Majte na pamäti, že AND má vyššiu prioritu ako OR. Rovnako ako v matematických rovniciach, aj v PHP môžete použiť zátvorky na označenie priority.
Ako používať slučky (while, for)
Niekedy musí skript prebehnúť určitou časťou kódu niekoľkokrát, než vykoná zvyšok programového kódu. Programovacie jazyky na to používajú koncept slučiek. V PHP existujú tri typy slučiek:
- cyklywhile
- do-while slučky
- for slučky
while slučky
Slučka while je najjednoduchší typ slučky v PHP. Tu je jej základná štruktúra:
while (condition)
{
loop step and other instructions
}phpSlučka while nariaďuje PHP, aby vykonávalo podprogramy, pokiaľ je splnená podmienka while. Na tento účel interpret PHP kontroluje podmienku na začiatku každého prechodu slučky. Vykonávanie podriadeného kódu sa zastaví až vtedy, keď podmienka while už nie je splnená.
Tento princíp možno ilustrovať pomocou jednoduchého skriptu na počítanie:
<?php
$number = 1;
while ($number <= 10) {
echo $number++ . "<br />";
}
?>Pojem inkrementácia bol predstavený v časti Výpočty s premennými tohto tutoriálu. V nasledujúcom skripte nadväzujeme na tento pojem, ale s malou zmenou. Tentoraz použijeme operátor post-inkrementácie. Ten zvýši hodnotu celočíselnej premennej $number o 1 po každej iterácii slučky, ihneď po výstupe textu echo. Podmienku pre cyklus while nastavíme takto: $number je väčšie alebo rovné 10. Následne sa príkaz echo bude opakovať, kým $number neprekročí hodnotu 10.

Výsledkom vykonania skriptu je reťazec, ktorý vytlačí hodnotu premennej $number pre každý priechod slučky pred jej inkrementáciou. Výsledkom je, že skript počíta od 1 do 10 a prestane vykonávať kód, akonáhle podmienka while už nie je splnená.
cyklydo-while
Štruktúra cyklu do-while je podobná štruktúre cyklu while. Jediný rozdiel spočíva v tom, že podmienka sa nekontroluje na začiatku každého prechodu cyklu, ale až na konci. Základná schéma cyklu do-while je nasledovná:
do {
loop step and other instructions
}
while (condition)phpNaprogramovaný ako cyklus do-while by predchádzajúci skript vyzeral takto:
<?php
$number = 1;
do {
echo $number++ . "<br />";
}
while ($number <= 10);
?>phpV tomto prípade zostáva výsledok rovnaký. Špeciálnou vlastnosťou cyklu do-while je to, že sa vykoná aspoň raz, aj keď podmienka nie je splnená v žiadnom priebehu cyklu.
pre cykly
Vo všeobecnosti má cyklus for v skripte PHP rovnakú funkciu ako cyklus while. Na rozdiel od cyklu while sú však počiatočná hodnota, podmienka a príkaz napísané na jednom riadku namiesto toho, aby boli rozložené na tri alebo viac riadkov. Základná štruktúra cyklu for je:
for (start value; condition; loop step)
instructionsphpVyššie uvedený príklad by sa dal napísať kompaktnejšie ako cyklus for:
<?php
for($number = 1; $number <= 10; $number++) {
echo $number . "<br /> ";
}
?>phpNajskôr sa pre $number definuje hodnota 1. Potom PHP skontroluje, či je splnená podmienka $number <= 1. Ak áno, cyklus pokračuje a vykonajú sa príkazy pod cyklom (v tomto prípade príkaz echo). Po vykonaní tohto kroku sa vykonajú kroky cyklu. V tomto kontexte je voľba medzi predbežným alebo následným inkrementom irelevantná, pretože tento krok sa vždy vykonáva pred výstupom. Po ukončení kroku slučky sa spustí ďalšia iterácia slučky.
V cykle for sa počiatočná hodnota, podmienka a krok cyklu považujú za voliteľné komponenty. Teoreticky sú možné aj prázdne cykly. Takéto cykly by však boli nadbytočné.
Je v podstate na vás, či budete písať svoje skripty PHP s cyklom for alebo while. Existuje však argument pre výber cyklov for: keď sa používajú cykly for, máte lepší prehľad o rámcových údajoch cyklu. Tým sa vyhnete riziku náhodného napísania nekonečného cyklu, ktorý beží, kým sa nevyčerpá pamäť interpretu. V súvislosti s predchádzajúcim príkladom sa to môže stať, ak zabudnete zvýšiť hodnotu premennej $number.
Ak však má byť slučka spustená aspoň raz, bez ohľadu na podmienku, je vhodnejšia slučka do-while.
breakandcontinue príkazy
Na vykonanie cyklu while, do-while alebo for môžu mať vplyv príkazybreak a continue. Príkaz break slúži na prerušenie toku cyklu v ľubovoľnom bode a príkaz continue na preskočenie priechodu cyklom. Oba príkazy sú viazané na podmienku pomocou if. Nasledujúci príklad ukazuje náš skript na počítanie s príkazom break:
<?php
for ($number = 1; $number <= 10; $number++) {
if ($number == 5) {
echo "If it is 5, we abort the script!";
break;
}
echo $number . "<br /> ";
}
?>phpV cykle for sme definovali, že hodnota premennej $number by sa mala v každom cykle zvýšiť o hodnotu 1, počnúc hodnotou 1, až kým premenná nedosiahne hodnotu 10. Tento cyklus môžeme predčasne zastaviť pomocou break, akonáhle $number dosiahne hodnotu 5. Jazyková konštrukcia echo vypíše iba čísla 1 až 4.

Aby sme preskočili výstup piateho kola, ale nezastavili celý tok slučky, nahradíme príkaz break príkazom continue:
<?php
for ($number=1; $number <= 10; $number++) {
if ($number == 5) {
echo "Let's skip the 5!<br />";
continue;
}
echo $number . "<br /> ";
}
?>phpNamiesto číslice 5 PHP vypíše textový reťazec Preskočíme číslo 5! definovaný pod if.

Ako vykonávať operácie so súbormi
Dynamický webový obsah je štruktúrovaný na princípe oddelenia obsahu a prezentácie. Na dosiahnutie tohto cieľa skriptovacie jazyky ako PHP ponúkajú širokú škálu funkcií, ktoré uľahčujú plynulú integráciu obsahu z externých zdrojov údajov do centrálnych šablónových súborov. V praxi sú týmito zdrojmi údajov zvyčajne databázy, ktoré sa spravujú pomocou systémov správy, ako je MySQL. Ako to funguje, sa dozviete v našom tutoriáli MySQL.
Je tiež možné zahrnúť údaje zo súborov. Nižšie vám ukážeme, ako načítať súbory ako reťazec do skriptu PHP a uložiť textový výstup zo skriptu do súborov.
Čítanie súborov
Na čítanie obsahu súboru má PHP k dispozícii rôzne funkcie. Z nich sú pre danú úlohu obzvlášť vhodné funkcie file() a file_get_contents(). Kým funkcia file_get_contents() načíta celý obsah súboru do reťazca, funkcia file() uloží obsah ako pole. Každý prvok poľa zodpovedá jednému riadku súboru. Použitie funkcie file() uľahčuje výstup každého riadku jednotlivo.
Operácie s PHP súbormi si ukážeme na príklade textového súboru example.txt, ktorý umiestnime do priečinka htdocs nášho testovacieho servera. Súbor obsahuje štyri riadky fiktívneho textu:
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.
Najskôr musíme prečítať celý súbor ako reťazec. Na to musíme priradiť názov príslušného súboru ako parameter funkcii file_get_contents():
file_get_contents('example.txt')
Teraz máme možnosť pracovať s načítaným reťazcom. Môžeme ho napríklad priradiť premennej a zobraziť ako text vo webovom prehliadači:
<?php
$example = file_get_contents('example.txt');
echo $example;
?>php
V prehliadači vidíme, že textový reťazec je zobrazený bez odsekov. Zlomky riadkov pôvodného súboru nie sú viditeľné. Je to preto, že webový prehliadač interpretuje textový výstup skriptu ako HTML kód. Zlomky, ktoré boli definované v textových editoroch, sa stratili.
Ak chcete zachovať pôvodnú štruktúru, máte niekoľko možností. Môžete ručne pridať HTML kód pre zlom riadku (br) do zdrojového súboru pomocou vyhľadávania a nahradenia, vložiť <pre> okolo obsahu súboru, nastaviť vlastnosť CSS white-space: pre -wrap alebo použiť funkciu nl2br(), aby PHP automaticky previedlo zlomy riadkov (nové riadky) na zlomy riadkov HTML (breaks). Tu je kód:
<?php
$example = file_get_contents('example.txt');
echo nl2br($example);
?>phpAk sa konštrukcia echo language používa v kombinácii s nl2br(), PHP vloží pred každý nový riadok HTML zlom riadku.

Na individuálne vypísanie riadkov súboru môžete použiť funkciu file(). Táto funkcia prečíta súbor, očísluje všetky riadky počnúc číslom 0 a uloží ich obsah ako prvky poľa. Pri použití v našom príklade dostaneme nasledujúci výsledok:
[0] = Lorem ipsum dolor sit amet, consectetuer adipiscing elit
[1] = Aenean commodo ligula eget dolor. Aenean massa.
[2] = Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
[3] = Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem
Ak chcete pomocou echo vygenerovať príslušný obsah, stačí zadať požadované číslo riadku. Napríklad nasledujúci skript nám ako výstup pre prehliadač poskytuje iba prvý riadok súboru example.txt:
<?php
$example = file("example.txt");
echo $example [0];
?>php
Zapisovať súbory
PHP presahuje rámec jednoduchého čítania súborov, pretože vám umožňuje aj čítať, vytvárať a upravovať súbory bez námahy.
Použitie funkcie file_put_contents() je toho najlepším príkladom. Vyžaduje len dva parametre: názov cieľového súboru a dáta, ktoré môžu byť reťazcom alebo poľom. V nižšie uvedenom skripte sa vytvorí nový súbor s názvom test.txt, ktorý obsahuje reťazec This is a test!. Vloženie \r\n zabezpečuje zalomenie riadku v súbore.
<?php
file_put_contents("test.txt", "This is a test! \r\n");
echo "test.txt has been created!";
?>php
Keďže file_put_contents nám neposkytuje žiadny výstup pre prehliadač, pridáme príkaz echo, ktorý nám oznámi, aká akcia sa vykonáva.
Ak sa v cieľovej zložke už nachádza súbor s rovnakým názvom, bude prepísaný. Tomu môžete zabrániť nastavením parametra FILE_APPEND:
<?php
file_put_contents("test.txt","The test was successful! \r\n", FILE_APPEND);
echo "test.txt has been updated!";
?>phpPoužitím funkcie file_put_contents() s parametrom FILE_APPEND sa nový obsah pripojí k existujúcemu obsahu.

To, čo PHP zapíše do cieľového súboru, nemusí byť nutne definované v skripte. Alternatívne môžete prenášať obsah z jedného súboru do druhého. Nasledujúci skript prečíta obsah súboru example.txt a vloží ho do súboru test.txt:
<?php
$example = file_get_contents("example.txt");
file_put_contents("test.txt", $example, FILE_APPEND);
echo "test.txt has been updated!";
?>php