PHP. 1. Úvod do PHP. 2. Základy PHP



Podobné dokumenty
EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Algoritmizace a programování

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

Algoritmizace a programování

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

Programovací jazyk Pascal

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

5 Přehled operátorů, příkazy, přetypování

PHP tutoriál (základy PHP snadno a rychle)

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

MAXScript výukový kurz

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

6 Příkazy řízení toku

Programování v jazyce JavaScript

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

Jazyk C# a platforma.net

SPJA, cvičení 1. ipython, python, skripty. základy syntaxe: základní datové typy, řetězce. podmínky: if-elif-else, vyhodnocení logických výrazů

Základy PHP. Josef Podstata. KTE/IZTT - Zpracování textu, tabulek a prezentací. Univerzita Palackého v Olomouci

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory

Paměť počítače. alg2 1

Algoritmizace a programování

Sada 1 - PHP. 03. Proměnné, konstanty

Programování v jazyce JavaScript

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

6. Příkazy a řídící struktury v Javě

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

PSK3-9. Základy skriptování. Hlavička

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Inovace bakalářského studijního oboru Aplikovaná chemie

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Databázové aplikace pro internetové prostředí PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku

PHP. Čtvrtek 8. září. Čtvrtek 15. září. Anonymní test znalostí

VISUAL BASIC. Práce se soubory

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; }

Zápis programu v jazyce C#

Úvod do programování. Lekce 1

Úvod do programovacích jazyků (Java)

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů

Sada 1 - Základy programování

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

Datové typy strana 29

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Kurz LSL skriptování. Shiny Iceberg 2009

Řídicí struktury. alg3 1

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

PROGRAMOVÁNÍ V SHELLU

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

Tabulkový procesor. Základní rysy

Stručný návod k programu Octave

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

První kapitola úvod do problematiky

ŘÍDÍCÍ STRUKTURY - PODMÍNKY

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

2 Datové typy v jazyce C

Výčtový typ strana 67

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

7. Datové typy v Javě

2 Strukturované datové typy Pole Záznam Množina... 4

ANOTACE vytvořených/inovovaných materiálů

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

Racionální čísla, operátory, výrazy, knihovní funkce

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

X36UNX 16. Numerické výpočty v sh příkazy expr, bc, dc. Zdeněk Sojka

Vzorce. StatSoft. Vzorce. Kde všude se dá zadat vzorec

Vstupní požadavky, doporučení a metodické pokyny

Kolekce ArrayList. Deklarace proměnných. Import. Vytvoření prázdné kolekce. napsal Pajclín

Základy PHP; jednoduché skriptování

Základy algoritmizace a programování

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Sekvenční a podmíněné provádění

Martin Hejtmánek hejtmmar

Základy HTML. Autor: Palito

Základy PERLu snadno a rychle

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Proměnné a parametry. predn_08.odt :00:38 1

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -

Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru

Algoritmy a datové struktury

Operační systémy. Cvičení 4: Programování v C pod Unixem

Základy algoritmizace a programování

Transkript:

PHP 1. Úvod do PHP Tato přednáška obsahuje úvod do skritpového jazyka PHP. Ten je podobný ostatním jazykům vyšší úrovně, jako je například jazyk C, Pascal, Fortran nebo Java, takže programátoři se zkušeností z kteréhokoli podobného jazyka by při studiu jazyka PHP neměli mít sebemenší problémy. T této přednášce se budeme opírat o verzi PHP4, kterou budeme označovat stručně jen jako PHP. Zkratka PHP je rekurzivní, protože je definovaná pomocí sebe sama znamená PHP: Hypertext Preprocesor neboli PHP: hypertextový procesor. Tento poněkud zvláštní styl pojmenovaní zavedl systém GU, který znamená GU s Not Unix ( GNU není Unix ) Ani název PHP necharakterizuje nijak zvlášť dobře povahu jazyka a jeho obvyklé využití. PHP je skriptový jazyk, který se obvykle vkládá do kódu HTML případně se s ním kombinuje. Má celou řadu vynikajících knihoven, jež poskytují rychlý přístup k databázovým systémům s možností vlastního přizpůsobení. Je tedy ideálním nástrojem pro vývoj aplikační logiky prostřednictvím vrstvy třívrstvých aplikací. 2. Základy PHP Prvním skriptem, který budeme v této přednášce rozebírat je obligátní Ahoj světe. Při vyžádání stránky z prohlížeče se skript spustí na webovém serveru a do prohlížeče se zpět odešle výsledný dokument HTML, jenž po zobrazení vypadá podobně jako na obrázku 1. Příklad 1 První příklad v PHP <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>ahoj světe</title> </head> <body> <h1> <? php echo "Ahoj světe";?> </h1> </body> </html>

Na příkladu 1 si můžeme úkázat základní vlastnosti skriptu PHP. Celý kód stránky je směsicí kódu HTML a vlastního skriptu PHP. Tento skript tvoří v prvním případě jen tři řádky: <? php echo "Ahoj světe";?> a jednoduše vytiskne pozdrav Ahoj světe. Skript PHP v příkladu 1 nemá ve skutečnosti příliš velký smysl. Bylo možné napsat obyčejnou stránku HTML a pozdrav v ní vytvořit přímo. Jazyk PHP se s kódem HTML velice dobře integruje, a proto je generování statických řetězců podstatně méně komplikované. Na tomto příkladu si budeme ilustrovat několik důležitých vlastností PHP: Začátek a konec skriptu vymezují značky <? PHP a?> nebo ještě stručněji <? a?> Delší verze počáteční značky <? PHP zabraňuje konfliktu s jinými instrukcemi pro zpracování, které je možné do kódu HTML zapisovat. Mezerové neboli bílé znaky nemají na činnost kódu žádný vliv, pouze zlepšuje jeho čitatelnost pro vývojáře. Skript by jsme mohli stručně zapsat na jednom řádku, pomocí textu <? php echo "Ahoj světe";?> Jednotlivé příkazy můžeme oddělovat libovolnou kombinací mezer, tabulátorů, návratů vozíku a podobných prázných znaků. Skript PHP tvoří posloupnost příkazů, z nichž každý je ukončen středníkem. V našem příkladu se nachází jeden příkaz a to: echo "Ahoj světe"; Skript PHP se může nacházet na jakémkoli místě souboru a může se libovolně střídat s fragmenty kódu HTML. Vykonaný skript PHP se ve výsledné stránce plně nahradí svým výsledkem, a to včetně původní počáteční a koncové značky skriptu <? PHP a?>. Možnost zcela volného vkládání jakéhokoliv počtu skriptů do zdrojového kódu HTML je jednou z nejzajímavějších vlastností PHP. Malou ukázkou je příklad 2, ve kterém před začátkem dokumentu HTML inicializujeme příkazem $outputstring = Ahoj světe proměnnou, kterou později dvakrát použijeme a vypíšeme na výstup, a sice v rámci elementů <title> a <body>. O proměnných a práci s nimi budeme dále hovořit podrobněji. Příklad 2 Použití proměnných <? php $outputstring = Ahoj světe ;?> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional //EN"> <html> <head> <title><? php echo $outputstring;?></title>

</head> <body> <h1><? php echo $outputstring;?> </h1> </body> </html> Možnost vkládání libovolného počtu skriptů do stránky TML může ovšem vést také k těžkopádnému a obtížně udržovatelnému kódu. Programový kód skriptu a kód HTML je proto vhodné pečlivě sestavit do modulů. 2.1. Vytváření skriptů PHP Skript PHP můžeme napsat jako prostý text a můžeme jej tedy vytvořit v libovolném textovém editoru, jako například Poznámkový blok. Jestliže skript uložíme do souboru s příponou.php a umístíme jej pod adresář, konfigurovaný jako kořen dokumentů Apache, bude jej webový server Apache vykonávat při každém požadavku na daný zdroj informací. Příklad kořenového adresáře /usr/local/apache/htdocs/. 2.2. Komentáře Komentáře se do programového kódu skriptu vkládají pomocí stalů zápisu, známých z ostatních vyšších programovacích jazyků. Konkrétmě máme k dispozici tyto styly komentářů: // Toto je jednořádkový komentář # Toto je druhý typ jednořádkového komentáře /* A takto zapisujeme komentáře přes několik řádků */ 2.3. Výpis dat pomocí příkazů echo a print K výpisu dát se používá příkazů echo nebo print například: Echo Ahoj světe ; // příkaz print funguje úplně stejně print Ahoj světe ; // stejně můžeme vytisknout i čísla echo 123; // a zrovna tak I obsah proměnných echo $outputstring;

Rozdíl mezi příklady echo a print spočívá v tom, že příkazem echo můžeme vypsat i více než jeden argument: echo Ahoj, světe ; Výpis dat můžeme docílit pomocí zkráceného zápisu <?=$temp;?>, který vypíše proměnnou temp. Argumenty příkazů echo a print se často zapisují do závorek. U příkazu echo použití závorek umožní použití jen jednoho argumentu. 2.4. Řetězcové literály V PHP je možné definovat řetězcové laterály uvozené klasickými uvozovkami i apostrofy. Potřebujeme-li tedy zapsat uvozovky do řetězce, přejdeme k řetězcům zapsaným do apostrofů a obráceně: echo Toto bude fungovat ; echo a toto zrovna tak ; // A tady je několik řetězců s uvozovkami echo Tento řetězec obsahuje : apostrof! ; echo Tento řetězec obsahuje : uvozovky! ; Znaky citací, apostrofy a uvozovky můžeme zapsat pomocí zpětného lomítka jako znaménkového znaku: echo Tento řetězec obsahuje \ : uvozovky! ; echo Tento řetězec obsahuje \ : apostrof! ; Jednou z vlastností PHP je možnost vložit přímo do řetězcového literálu také hodnotu proměnné. Jazyk PHP totiž řetězce zapsané v uvozovkách analyzuje a nahrazuje v nich názvy proměnných příslušnou hodnotou. Například: $počet=45; $vozidlo= trolejbus ; $zpráva= Tento $vozidlo pojme $počet osob ; // tento příkaz vypíše Tento trolejbus pojme 45 osob echo $zpráva; 2.5. Proměnné Proměnné v jazyce PHP vymezuje znaménko dolaru a za ním název proměnné. Použité proměnné nemusíme nijak zvlášť deklarovat a před prvním přiřazením hodnoty nemají ani žádný typ. Typ proměnné se přiřazuje implicitně použitím určitého typu proměnné a v průběhu jejího života je možné tento typ libovolně měnit. Například:

$prom=15; $prom= Kocour Mikeš ; - celočíselná - řetězcová V názvech proměnných PHP se rozlišuje velikost písmen, takže $proměnná, $Proměnná $Proměnná a $PROMĚNNÁ představují různé proměnné. Poznámka: Častým zdrojem chyb v PHP je nahodilé vytvoření více proměnných s podobným názvem které se liší velikostí písmen. Popsaná flexibilita jazyka PHP je veice příjemná ale také zákeřná a nebezpečná. 2.6. Typy Jazyk PHP zná čtyři základní typy: Logický (booleovský), Reálný (float s pohyblivou řádovou čárkou), Celočíselný (integer), Řetězcový (string). Dále jsou definovány dva složené typy: Pole (array), Objekt (object). Proměnné skalárního typu mohou v jakémkoli okamžiku obsahovat vždy pouze jedinou hodnotu. Proměnné složeného typu (pole a objekt) jsou proti tomu složené z více skalárních hodnot, případně z jiných složených hodnot. 2.6.1. Booleovské (logické) proměnné Booleovské proměnné jsou velice jednoducé: můžeme do nich přiřadit pouze hodnotu true nebo false (pravda, nepravda) $prom=false; $test=true; 2.6.2. Reálna a celočíselná proměnná Celočíselná proměnná obsahuje celé číslo, zatímco reálná proměnná s pohyblivou řádovou čárkou může mít exponent a zlomkovou část. Reálné je tak například číslo 123.01 (desetinným oddělovačem je tečka) a stejně tak i 123.0. Číslo 123 je celočíselný údaj.

// Toto je celočíselná hodnota $prom1=6; // A toto je reálny údaj $prom2=6.0; // Reálná hodnota 1120 zapsaná pomocí exponenciálního zápisu $prom3=1.23e3; // A toto je reálny údaj rovný 0,02 $prom4=2e-2; 2.6.3. Řetězcové proměnné Ukázka řetězcových proměnných $promena= Toto je řetězec ; 2.7. Konstanty Konstanta představuje spojení názvu s určitou prostou, skalární, neměnnou hodnotou define( pi, 3.14159); // Tento příkaz vypíše hodnotu 3.14159 echo pi; Před konstanty se znak $ nezapisuje a po definici se už konstanta nemůže měnit a můžeme k nim přistupovat z kteréhokoliv místa skriptu bez ohledu na to kde ji deklarujeme a mohou obsahovat pouze jedinou, jednoduchou skalární hodnotu. 2.8. Přiřazování proměnných Do proměnné zapíšeme hodnotu výrazu vpravo od znaménka rovná se. V jazyce PHP funguje většina číselných přiřazení obdobných vyšším programovacím jazykům. // Přiřazení hodnoty do proměnné $prom=1; // Celé číslo vypočtené jako součet dvou celých čísel $prom=4+7; // Výsledek odčítání, násobení a dělení $prom=(($prom-5)*2)/3 ; // Všechny výrazy přičtou k proměnné $prom jedničku $prom=$prom+1; $prom+=1; $prom++; // Všechny výrazy odečtou od proměnné $prom jedničku $prom=$prom-1;

$prom-=1; $prom--; // Přiřazení dvojnásobku hodnoty $prom=$prom*2; $prom*=2; // Poloviční hodnota $prom=$prom/2; $prom/=2; Pro složitější operace definuje matematická knihovna PHP celou řadu matematických funkcí. Podobným způsobem fungují řetězcové přiřazení a výrazy: // Přiřazení řetězcové hodnoty do proměnné $prom= pokusný řetězec ; // Zřetězení neboli spojení řetězců jehož výsledkem je pokusný řetězec $prom= pokusný. řetězec ; // Přidání jednoho řetězce nakonec druhého $prom= pokusný ; $prom=$prom. řetězec ; // Zkrácený zápis rozšíření řetězce o jiný řetězec $prom= pokusný ; $prom.= řetězec ; 2.9. Výrazy Výrazy se v jazyce PHP formulují podobně jako v ostatních jazycích. Výraz se skládá z literálových hodnot, operátorů a volání funkcí, které vracejí hodnoty. PHP vykonává potřené konverze při kombinaci různých typů ( výsledkem 4+7.0 bude 11.0). 1 Podobně i priorita operátorů při vyhodnocování výrazů je obdobná jako v jakémkoliv jiném jazyce. Odporučuje se ale používat závorek, které mají nejvyšší prioritu a jednoznačně definují postupnost vyhodnocování operátorů. 3. Podmínky a větvení Podmínkové příkazy nabízejí ve skriptech možnost řízení a větvení do různých příkazů, které se provedou při splnění nebo nesplnění jisté podmínky ( tedy jestliže je určitý výraz roven true nebo false). Příkazy pro větvení jsou v PHP k dispozici dva: if s nepovinnou klausulí else. 1 Konverzi proměnných v přednášce nebude věnována pozornost.

switch který se obvykle zapisuje s dvěma nebo více klausulemi case. 3.1. Příkaz if. else Příkaz if podmíněně řídí provádění skriptů. V základním formátu se testuje pravdivost určité podmínky. Příkaz if může mít také nepovinnou klausuli else, jejíž příkaz nebo blok příkazů (uzavřených do složených závorek) 2. $prom=6; if ( $prom>5) echo Proměnná je větší než 5 ; else {echo Proměnná je menší nebo rovná 5 ; echo Proto je třeba vykonat. ;} Z několika po sobě jdoucích podmínkových testů můžeme vytvořit složitou strukturu rozhodovacích bloků if ( $prom<5) echo Hodnota je moc malá ; else if ( $prom<10) echo Hodnota je malá ; else if ( $prom<20) echo Hodnota je velká ; else if ( $prom<30) echo Hodnota je moc velká ; Zápis těchto o sobě jdoucích, postupně vyhodnocovaných podmínek můžeme zjednodušit pomocí příkazu elseif if ( $prom<5) echo Hodnota je moc malá ; elseif ( $prom<10) echo Hodnota je malá ; elseif ( $prom<20) echo Hodnota je velká ; elseif ( $prom<30) echo Hodnota je moc velká ; 3.2. Příkaz switch Příkaz switch je při výběru ze seznamu voleb alternativou k příkazu if Switch ($menu) { case 1: echo Vybral jsi číslo jedna; break; case 1: echo Vybral jsi číslo dvě; break; 2 Je možno použít i přímo po if.

case 1: echo Vybral jsi číslo tři; break; case 1: echo Vybral jsi číslo čtyři; break; case 1: echo Vybral jsi něco jiného; break; } Stejný příkaz by bylo možné implementovat pomocí příkazů if a elseif, ale zápis příkazu switch je obvykle kompaktnější, čitelnější a efektivnější. Příkazy breake j jednotlivých větvích zabraňují vykonání ostatních příkazů, jež následují v bloku switch a pokračuje příkazem za následující složenou závorkou. 3.3. Podmínkové výrazy Základní porovnání v podmínkovém výrazu Rovnost if ( $prom==1) echo Hodnota je rovná jedné ; Nerovnost if ( $prom!=1) echo Hodnota nerovná jedné ; Menší if ( $prom<1) echo Hodnota je menší než jedné ; Větší if ( $prom>1) echo Hodnota je větší než jedné ; Menší nebo rovno if ( $prom<=1) echo Hodnota je menší nebo rovná jedné ; Větší nebo rovno if ( $prom>=1) echo Hodnota je větší nebo rovná jedné ; Výrazy je možné kombinovat pomocí závorek a logických operátorů: AND, Logické A if ( $prom>=1) && ($prom<=7) echo Hodnota je mezi 1 a 7 ; OR, Logické NEBO if ( $prom==1) ($prom==7) echo Hodnota se rovná 1 nebo 7 ; 3 Složitější výrazy můžeme formulovat pomocí vhodné kombinace logických operátorů a libovolně zapsaných závorek. if ((( $prom>=1) && ($prom<=7)) (( $prom>=11) && ($prom<=77))) echo Hodnota je mezi 1 a 7 nebo 11 a 77 ; K porovnání řetězců je možné použít podmínkových operátorů ale častěji používáme knihovní funkci PHP strcmp( ). Jakýkoliv z probraných logických výrazů můžeme dále negovat pomocí symbolu vykřičník! if ( $prom==1) echo Hodnota je rovná jedné ; if (!($prom!=1)) echo Hodnota je rovná jedné ; oba výrazy jsou ekvivalentní. 3 je možné na české (slovenské) klávesnici zapsat levý Alt+w

3.4. Cykly V jazyku PHP jsou definovány čtyři typy cyklů: while do while for forech - používá se výhradně u polí 3.4.1. Cyklus while V cyklu while se opakuje jeden nebo více příkazů tělo cyklu dokud zadaná vstupní podmínka zůstává pravdivá. Pokud podmínka hned na začátku není splněná, neprovede se tělo cyklu ani jednou. Stejně jako u příkazu if můžeme i zde zapsat do těla cyklu několik příkazů, uzavřených mezi složené závorky. $čítač=1; while ($čítač<11) { echo $čítač; echo ; // zvýšíme $čítač o jedničku $čítač++; } 3.4.2. Cyklus do. while Rozdíl mezi cyklem while a do while spočívá v místě kontroly platnosti podmínkového výrazu. V cyklu do. while se podmínka vyhodnocuje až po vykonání těla cyklu a cyklus se opakuje, dokud je podmínka pravdivá. $čítač=1; do { echo $čítač; echo ; // zvýšíme $čítač o jedničku $čítač++; }

while ($čítač<11) ; 3.4.3. Cyklus for Cyklus for je mezi všemi konstrukcemi cyklů nejkomplikovanější, ale zároveň vede k nejkompaktnějšímu programovému kódu. for ($čítač=1; $čítač<11; $čítač++;) { echo $čítač; echo ; } Hlavička cyklu form má celkem tři části, oddělené středníky, přičemž všechny jsou nepovinné: Inicializační příkazy Tyto příkazy se provádějí pouze jednou, a to před prvním vstupem do těla cyklu Podmínka opakování cyklu Podmínkový výraz, který se vyhodnotí před každým vykonáním těla cyklu. Jestliže se podmínkový výraz vyhodnotí jako nepravdivý (false), tělo cyklu se již nevykoná. Příkazy pro dokončení iterace cyklu Příkazy které se provedou po každém vykonání těla cyklu 3.4.4. Cyklus forech Příkaz forech byl zavedený v jazyku PHP4 a představuje pohodlný způsob procházení hodnot pole. Podobně jako cyklus for provádí cyklus forech své tělo jedenkrát pro každou hodnotu v poli. Příklad převodu hodnot pole z cm na palce: // Sestavíme pole celých čísel $delky=array(0, 107, 202, 400, 475); /Nyní pole údajů v centimetrech převedeme na palce forech ($delky as $cm) { $inch=$cm/2.54; echo $cm centimetrů = $inch palců\n ; }

3.5. Příklad V této časti je uveden jednoduchý kompletní skript PHP. Vytvoříme webovskou stránku s násobilkou. Na začátku vývoje si musíme uvědomit, jak bude výsledek skriptu vypadat, tedy jaký text formátu HTML potřebujeme vygenerovat. <html> <head> <title>násobilka</title> </head> <body bgcolor="#80ffff"> <h1>násobilka</h1> <p><b>násobilka číslem 1</b></p> <br />1 x 1 = 1 <br /><b>2 x 1 = 1</b> <br />3 x 1 = 1 <br /><b>4 x 1 = 1</b> <br />5 x 1 = 1 </body> </html> Kompletní skript PHP a kód HTML, jež vytváří tabulku s násobilkou (následující příklad) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd"> <html> <head> <title>násobilka</title> </head> <body bgcolor="#80ffff"> <h1>násobilka</h1> <?php //Postupně projdeme každou tabulku for ($table=1; $table<13; $table++) { echo "<p><b>násobilka číslem ", $table, "</b></p>\n"; //Pro každou tabulku vytvoříme 12 řádků

for ($counter=1; $counter<13; $counter++) { $answer=$table*$counter; //Generuje sudý řádek? if ($counter % 2 == 0) //Ano, vytiskneme jej tučně echo "<br /><b>", $counter," x ",$table," = ",$answer,"</b><br />"; else //Ne, vytiskneme jej obyčejným písmem echo "<br>", $counter," x ",$table," = ",$answer,"</br>"; } }?> </body> </html> Vnější cyklus for používá celočíselnou řídící proměnnou $table, kterou postupně inkrementujeme o jedničku s každým provedením těla, až dosáhneme hodnotu 12. Tělo vnějšího cyklu vytiskne záhlaví a spustí vnitřní cyklus, který již vypisuje jednotlivé řádky. Každý druhý řádek a každý nadpis je uzavřen do značek tučného textu. Operace modulo if ($counter % 2 == 0) vydělí proměnnou $counter dvěma a vrátí celočíselný zbytek. Je-li $counter rovna 6, vrátí se hodnota 0. Když je $counter rovna 11, vrátí se hodnota 1, Obrázek 1 Výsledek skriptu Násobilka protože 11/2=5 se zbytkem 1. To znamená, pokud je proměnná $counter sudé číslo, bude podmínkový výraz ($counter % 2 == 0) pravdivý a řádek násobilky se vytiskne tučně. 4. Pole Pole v jazyku PHP jsou velice důmyslná a jsou flexibilnější než ve většině ostatních vyšších programovacích jazyků. Pole je uspořádaná množina proměnných, které se nazývají

prvky neboli elementy pole. Formálně mohou být číslovaná nebo asociativní (k poli přistupujeme prostřednictvím číselného indexu nebo přes textový řetězec). Mohou obsahovat jak skalární hodnoty (celočíselné, logické, řetězcové nebo reálné hodnoty), tak i složené hodnoty (objekty a dokonce i další pole). Jedno pole může navíc obsahovat hodnoty různých typů. 4.1. Vytváření polí Pro vytváření polí definuje PHP jazykovou konstrukci array( ). $čísla=array(9, 8, 7, 6); $slova=array( webové, databázové, aplikace ); // vytiskne třetí element pole celých čísel 7 echo $čísla[2]; // vytiskne první element pole řetězců webové echo $slova[0]; Index prvního elementu pole je tady implicitně roven nule. Jednotlivé hodnoty v poli načítáme a modifikujeme pomocí zápisu s hranatými závorkami. $jedlo[0]= brambory ; $jedlo[1]= zelí ; $jedlo[2]= knedlíky ; // teď třetí element nahradíme jinou hodnotou $jedlo[2]= okurky ; U polí s číselnými indexy můžeme v okamžiku jejich vytvoření stanovit jakoukoliv počáteční hodnotu indexu. Často je pohodlnější začínat indexování polí jedničkou. $čísla=array(1=> jedna, dvě, tři ); Pole můžeme vytvořit také jako řídké, kdy obsazené indexy netvoří spojitou posloupnost $licháčísla=array(1=> jedna, 3=> tři, 5=> pět ); Vytvoření prázdného pole, které později můžeme naplňovat $prostor=array( ); 4.2. Asociativní pole K hodnotám uloženým v asociativním poli se přistupuje pomocí řetězcových indexů neboli klíčů. Asociativní pole můžeme vytvořit pomocí konstrukce array ( ) $pole=array( první =>1, druhý =>2, třetí =>3); //Vypíše druhý element pole, tedy 2 echo $pole ( druhý ); obdobně by bylo možné vytvořit pole pomocí syntaxe s hranatými závorkami

$pole[ první ]=1; $pole[ druhý ]=2; $pole[ třetí ]=3; 4.3. Heterogenní pole Hodnoty ukládané do jednoho určitého pole, nemusí být v jazyce PHP nutně stejného typu. Pole v PHP mohou obsahovat různorodé neboli heterogenní hodnoty. $smíšenézboží=array( kočka, 15, 8.5, false); Funkce var_dump ( ) vypíše při svém volání obsah pole var_dump($smíšenézboží); array(4) { [0]=>string(3) kočka [1]=>int (15) [2]=>float ( 8.5) [3]=>bool (false) } 4.4. Vícerozměrná pole Pole v jazyce PHP mohou obsahovat další pole. Tím se vytváří vícerozměrná (multidimenzionální) pole. <html> <head> <title>vícerozměrná pole</title> </head> <body bgcolor="#80ffff"> <h2>dvourozměrné pole</h2> <?php //Dvojrozměrné pole s celočíselnými indexy $planety=array(array("merkur",0.39,0.38), array("venuše",0.72,0.95), array("zemì",1.0,1.0), array("mars",1.25,0.53)); //Vytiskne údaje o planetě "Zem" print $planety[2][0]?> </body> </html> Obdobná varianta s asociativním polem

<html> <head> <title>vícerozměrná pole 2</title> </head> <body bgcolor="#80ffff"> <h2>dvourozměrné pole 2</h2> <?php //Dvojrozměrné pole s celočíselnými indexy $planety=array( "Merkur"=>array("dist"=>0.39,"dia"=>0.38), "Venuse"=>array("dist"=>0.72,"dia"=>0.95), "Zeme" =>array("dist"=>1.0,"dia"=>1.0, "moons"=>("měsíc")), "Mars" =>array("dist"=>1.52,"dia"=>0.53, "moons"=>array("phobos","deimos"))); //Vytiskne název druhého měsíce Marsu" print $planety["mars"]["moons"][1];?> </body> </html> 4.5. Pole a cyklus forech Nejsnadnější způsob procházení neboli iterace v poli představuje příkaz cyklu foraech. <html> <head> <title>příkaz foreach</title> </head> <body> <?php //sestavíme pole celých čísel $delky=array(0, 107, 202, 400, 475); //Nyní pole údajů v centimetrech převedeme na palce foreach($delky as $cm) { $inch=$cm/2.54; echo $cm, " centimetrů = ", $inch, "palců <br />"; }

?> </body> </html> Obrázek 2 Výsledek skriptu převodu cm na palce