PHP stručná reference syntaxe a funkcí

Rozměr: px
Začít zobrazení ze stránky:

Download "PHP stručná reference syntaxe a funkcí"

Transkript

1 Úvodem Tento text vznikl v relativně krátkém časovém období, a proto nemusí být zcela korektní. Jakékoli objevené chyby sdělte prosím šetrnou formou autorovi. V následující referenci nebudou kladeny žádné nároky na úplnost, neboť zde pro ni není prostor. Dále se předpokládá, že čtenář je zběžně obeznámen s jazykem HTML, principem fungování HTTP protokolu, klient-server architekturou aplikací a fungováním CGI skriptů. Obsah 1. Základní principy fungování PHP skriptů Kombinování PHP a HTML kódu Dělení kódu do souborů Zpracování dat z HTTP protokolu Komentáře Proměnné, základní datové typy a operace s nimi Syntaxe a definování proměnných Datové typy Přetypování Operátory Řetězce a magické uvozovky Řídící struktury Struktury pro větvení běhu kódu Cykly Funkce Základní syntax Lokální a globální proměnné Předávání parametrů referencí Pole Základní syntax Základní funkce pro práci s poli Objekty Reference Základní informace a vytváření referencí Rušení referencí Používání referencí Rozdíl mezi referencemi a ukazateli Přehled vybraných vestavěných funkcí Funkce pro práci s řetězci Regulární výrazy Funkce pro práci se soubory Funkce pro práci s databázi MySQL Co PHP ještě umí Závěr aneb co se jinam nevešlo Martin Kruliš pouze ke studijním účelům strana 1 z 15

2 1. Základní principy fungování PHP skriptů 1.1 Kombinování PHP a HTML kódu Skripty PHP (PHP: Hypertext Preprocesor), jak již název napovídá, jsou určeny ke vkládání do HTML kódu. Při průchodu skriptu PHP interpretem jsou pak tyto fragmenty PHP příkazů vyjmuty z HTML, zpracovány a jejich výsledky jsou vloženy zpět do HTML. Na následujícím příkladu je vidět fragment kódu PHP vnořený do HTML stránky. Příklad 1: <body> <p> <?php Echo 'Výstup generovaný z PHP.';?> </p> </body> Při zpracování stránky PHP interpretem se z HTML stránky vyjme vše mezi značkami <?php a?>. Obsah (PHP kód) se zpracuje, a výstup tohoto kódu je vložen zpět namísto výše uvedených značek. Výstup se z PHP provádí pomocí příkazů echo nebo funkce print. V příkladu 1 je tedy do textu vložen řetězec Výstup generovaný z PHP. a data, která získá klient, budou vypadat následovně. Příklad 1 - výsledek: <body> <p> Výstup generovaný z PHP. </p> </body> V praxi se často používá lehce odlišný přístup, který se snaží co nejvíce separovat HTML a PHP. Většina PHP skriptů pak neobsahuje žádný HTML kód a celý soubor je uzavřen do značek <?php a?>. Kód HTML je poté načítán a vkládán ze samostatných souborů šablon, které naopak obsahují převážně HTML kód. 1.2 Dělení kódu do souborů Téměř každý projekt vyžaduje rozdělení kódu do více souborů, aby byl kód čitelnější a přehlednější. Tento koncept navíc umožňuje vytváření knihoven, které jsou základem pro vícenásobné použití kódu. PHP jde při práci se soubory skriptů ještě dál a nabízí celkem čtyři základní funkce, které umožňují vkládání skriptů: include() Vloží do skriptu jiný soubor se skriptem těsně za příkaz include. Vložený soubor je navíc rovnou vyhodnocen (tzn. interpret pokračuje v běhu ve vloženém kódu). require() Tento příkaz funguje stejně, jako include, ale vkládaný soubor není vložen za, nýbrž místo příkazu require. Na první pohled se může zdát, že v tom není rozdíl, ale zkusme si představit, jak se budou tyto příkazy chovat, použijeme-li je v cyklu. include_once(), require_once() Fungují stejně jako include a require, ale zároveň kontrolují, aby jeden skript nebyl vložen vícekrát. Pro následující příklad předpokládejme, že máme skript functions.php, který obsahuje užitečné funkce a dále pak soubory header.html a footer.html, které obsahují HTML kód se začátkem (resp. koncem) stránky. Náš skript pak může vypadat třeba takto: Martin Kruliš pouze ke studijním účelům strana 2 z 15

3 Příklad 2: <?php require_once('functions.php'); // vloží skript (pokud ještě nebyl vložen) require('header.html'); // vloží hlavičku HTML stránky... kód zobrazující zbytek stránky... require('footer.html'); // vloží patičku HTML stránky?> Jak je vidět, výše zmíněné funkce lze použít i pro vkládání HTML kódu. Vložený soubor je zpracován stejně jako samostatný soubor. Pokud tedy obsahuje pouze PHP, musí být celý uzavřen do značek <?php a?>. Pokud naopak obsahuje pouze HTML, je hned po vložení odeslán na výstup (do klientova prohlížeče). 1.3 Zpracování dat z HTTP protokolu Skriptovací jazyk PHP je navržen tak, aby co nejvíce usnadnil vývoj webových aplikací. Z tohoto důvodu obsahuje nativně několik vlastností a funkcí, které ostatní jazyky nemají, nebo je mají implementovány v přídavných knihovnách. Nejdůležitější je pro webového programátora možnost manipulovat s hlavičkami HTTP protokolu, a to jednak získat hlavičky příchozího požadavku a jednak mít možnost upravovat hlavičky HTTP odpovědi na tento požadavek. Příchozí data z požadavku jsou automaticky připravena interpretem PHP do několika super-globálních proměnných, z nichž nejdůležitější jsou $_GET a $_POST. Slovo super-globální zde znamená, že tyto identifikátory jsou dostupně z jakéhokoli místa kódu. Obě proměnné jsou pole uchovávající parametry předané metodou GET (resp. metodou POST). Indexem v poli je název parametru a hodnotou pak pochopitelně jeho vlastní hodnota. Více o polích a práci s nimi se dozvíte v kapitole Pole. Existují i jiné způsoby, jak přistupovat k těmto parametrům, ale výše uvedený je jediný, který je považován za správný. Ostatní způsoby jsou zastaralé a často bývají dokonce zakázány v konfiguraci PHP interpretu. Příklad 3: Formulář, který je odesílán z klienta: <form action="action.php?id=1&page=index&" method="post"> <input type="text" id="name" /> <input type="submit" value="send" /> </form> Skript action.php, který je zavolán, aby obsloužil POST požadavek a data z odeslaného formuláře: <?php if ($_GET['page'] == 'index') { // zda má GET parametr page hodnotu index echo('uživatel ', $_GET['id'], ' má jméno: ', $_POST['name']);?> 1.4 Komentáře Komentáře v PHP mají stejnou podobu jako např. v C++. Rozeznáváme dva typy komentářů blokové a řádkové. Blokový komentář je ohraničen symboly /* a */. Řádkový komentář je uvozen dvěma lomítky // a pokračuje až do konce řádku. Příklad 4: <?php /* Víceřádkový komentář... */ echo('text...'); // Komentář do konce řádku...?> Martin Kruliš pouze ke studijním účelům strana 3 z 15

4 2. Proměnné, základní datové typy a operace s nimi 2.1 Syntaxe a definování proměnných Identifikátory proměnných v PHP začínají vždy znakem '$'. Následuje identifikátor proměnné, který může obsahovat pouze písmena, čísla a znak '_'. Proměnné se nemusí deklarovat, definují se prvním přiřazením do proměnné. Proměnné, které dosud nebyly deklarovány, nesmí být použity uvnitř výrazu. Navíc jsou definovány dvě důležité funkce pro práci s proměnnými: isset($var) Zjišťuje, zda je proměnná $var již nastavena. unset($var) Odstraní proměnnou $var (po zavolání této funkce přestane proměnná existovat). Příklad 5: if (!isset($a)) $a = 0; // pokud není $a nastaveno, přiřadí do něj 0 $b = $a + 1; // teď už můžeme $a použít ve výrazu unset($a); // odstraníme $a echo $a; // způsobí chybu - $a už není definováno 2.2 Datové typy Jazyk PHP obsahuje čtyři skalární typy. Protože jsou nejjednodušší, začneme právě jimi: boolean Proměnná tohoto typu může nabývat pouze dvou hodnot true a false. integer Celé číslo. Jeho rozsah je platformě závislý, ale zpravidla to bývá 32-bitová hodnota. float (nebo též double) Reálné číslo s plovoucí desetinnou čárkou. string Řetězec znaků libovolné délky (resp. téměř libovolné, neboť paměť skriptu bývá omezena). Kromě skalárních typů existují ještě dva složené typy pole (array) a objekt (object). Tyto typy stojí za podrobnější popis, a tak jim byly vyhrazeny samostatné kapitoly. Aby byl výčet úplný, musíme ještě zmínit dva speciální typy: resource Tento typ je vracen některými speciálními funkcemi, které manipulují s externími zdroji. Jako příklad bychom mohli uvést handle na otevřený soubor nebo na otevřené spojení s databází. Tento datový typ je možné upravovat pouze speciálními funkcemi a přiřazovat jej operátorem '='. null Speciální datový typ, který může obsahovat pouze jedinou hodnotu null. Tato hodnota říká proměnná nemá žádnou hodnotu. Čistě technicky je proměnná považována za null, pokud do ní byla explicitně dosazena hodnota null, pokud ještě nebyla inicializována nebo pokud na ni byla zavolána funkce unset(). Na testování typu proměnných existuje celá paleta funkcí začínajících prefixem is_. Například is_bool() otestuje, zda je proměnná typu boolean, is_string(), zda je to řetězec a podobně. Zde uvedeme pouze jejich výčet bez hlubšího vysvětlení, neboť názvy jsou víc než intuitivní: is_array(), is_bool(), is_float(), is_int(), is_null(), is_numeric(), is_object(), is_resource(), is_scalar(), is_string() 2.3 Přetypování Proměnné (resp. výrazy) mohou být při vyhodnocování automaticky přetypovány. Pravidla pro přetypování jsou celkem složitá, a proto zde zmíníme jen několik nejdůležitějších. Vše lze přetypovat na boolean (což se velice hodí např. při vyhodnocování podmínek). Hodnoty null, 0, prázdný řetězec a prázdné pole se převedou na false. Vše ostatní je bráno jako hodnota true. Pozor na začátečnickou chybu 0 odpovídá false, ale '0' odpovídá true, neboť se jedná o neprázdný řetězec s jediným znakem nula. Automaticky se převádí čísla na řetězec i zpět. Pokud je např. použit řetězec uvnitř matematického výrazu, pokusí se PHP převést co nejdelší možnou počáteční část řetězce na číslo (v závislosti na formátu zápisu buď na celé, nebo na desetinné číslo). V případě, že tento převod není možný, je řetězec převeden na celé číslo 0. Martin Kruliš pouze ke studijním účelům strana 4 z 15

5 Obdobně jako v např. jazyce C, i v PHP funguje explicitní přetypování. Stačí pouze napsat datový typ do závorky před přetypovávaný výraz. Příklad 6: $str = '10 malých černoušků'; $pocet = $str + 1; // $str se přetypuje na číslo, takže $pocet == 11 echo $pocet; // $pocet se přetypuje na řetězec a vypíše se $str = 'asi 11'; // tentokrát si připravíme špatný řetězec $pocet = $str + 2; // $str neobsahuje na začátku číslo => má hodnotu 0 $str = (string)$pocet; // do $str se uloží počet jako řetězec, tedy '2' 2.4 Operátory Zde je přehled téměř všech operátorů, které se v PHP vyskytují. Jako první si představíme aritmetické operátory: +, -, *, /, % Tyto operátory mají stejný význam jako např. v jazyce C. Jen pro připomenutí - % je operátor zbytku po celočíselném dělení. Dalším neméně důležitým operátorem je operátor přiřazení =. Narozdíl od např. Pascalu je v C-čkových jazycích běžné, že přiřazení je výraz (nikoli příkaz), který vrací to, co přiřadil. Díky tomu lze psát zkráceně přiřazování stejné hodnoty do více proměnných. $a = $b = $c = 1; Celý výraz se vyhodnocuje postupně odprava. Tedy 1 se přiřadí do $c a pošle se dále doleva. Všechny tři proměnné tak získají postupně hodnotu 1. Pro většinu ostatních operátorů existuje ještě jejich varianta s přiřazením. Tedy např. k operátoru + existuje ještě přiřazující operátor +=. Výraz $a += 5; je jen syntaktickou zkratkou za $a = $a + 5;. S celými čísly toho umíme ještě víc lze s nimi pracovat, jako by to byla pole bitů pevné délky. Na to jsou tu bitové operátory: $a & $b AND (logický součin). Nastavuje bity tam, kde jsou nastaveny v $a i $b. $a $b - OR (logický součet). Nastavuje bity tam, kde jsou nastaveny v $a nebo v $b. $a ^ $b XOR (logický exkluzivní součet). Nastavuje bity tam, kde jsou nastaveny v $a nebo v $b, ale ne v obou současně. ~ $a NOT (bitová negace). Změní nuly na jedničky a naopak. $a << $b Bitový posun doleva. Posune bity v $a o $b bitů výše. $a >> $b Bitový posun doprava. Posune bity v $a o $b bitů níže. Pro vyhodnocování podmínek jsou nezbytné také operátory porovnání. Jejich operandy mohou být téměř libovolné výrazy a jejich výsledkem je boolovská hodnota. ==,!= rovnost a nerovnost ===,!== identita a neidentita (identita je rovnost hodnot i typů) <, >, <=, >= menší, větší, menší nebo rovno, větší nebo rovno (fungují pouze pro číselné výrazy) Pro boolovské hodnoty jsou zde logické operátory (narozdíl od bitových operátorů fungují pouze na výrazy typu boolean): && logické a (AND) logické nebo (OR)! unární operátor negace (NOT) Martin Kruliš pouze ke studijním účelům strana 5 z 15

6 Jelikož PHP vychází z jazyka C, obsahuje i typické inkrementační a dekrementační operátory. $a++, $a-- post-inkrement (resp. dekrement) nejprve je vrácena hodnota $a a následně je proměnná upravena ++$a, --$a pre-inkrement (resp. dekrement) nejprve upravena hodnota $a a až následně je vrácena Příklad 7: $a = 1; $b = $a++; // $a = 2, $b = 1 $a = ++$b; // $a = 2, $b = 2 Jako poslední zbývá uvést operátor pro spojení dvou řetězců. Jelikož je + již obsazené pro aritmetické účely, stala se operátorem sřetězení tečka. Stejně tak, jako + může způsobit automatickou konverzi řetězce na číslo, tak i '.' může způsobit konverzi čísla na řetězec. Příklad 8: $num = 42; $str = 'Hodnota proměnné num je '. $num; // přetypuje $num na string echo $str; // Vypíše: Hodnota proměnné num je Řetězce a uvozovky O tom, že existuje datový typ řetězec, již víme. Dosud jsme ale neřekli, jak se řetězce zapisují do zdrojového kódu. Existují dva způsoby jak řetězce zapisovat pomocí apostrofů a pomocí uvozovek. Základním způsobem zápisu, je umístit řetězec do apostrofů - 'řetězec'. Všechny znaky uvnitř (kromě apostrofu) jsou chápány jako znaky řetězce (žádný znak nemá speciální význam). Pokud chcete do řetězce vložit apostrof, je potřeba před něho vložit zpětné lomítko: 'Tady bude jeden apostrof \' a tady pokračuje řetězec.' Stejným způsobem je potřeba vložit lomítko před znak nového řádku. 'Tady je první řádek \... a tady pokračuje druhý řádek' Vyskytne-li se znak zpětného lomítka před jiným znakem, než apostrof nebo konec řádku, je chápán jako normální znak. Je-li potřeba zobrazit znak \ před apostrofem, je potřeba jej zdvojit: 'Zde bude lomítko \ a zde bude lomítko a apostrof \\\'.' Pokud nepotřebujeme do řetězce vkládat speciální znaky, nebo jiné věci, je tento způsob zápisu řetězců nejlepší a nejrychlejší z hlediska zpracování interpretem. V některých případech může být naopak vhodné vkládat do řetězců přímo speciální znaky, nebo dokonce hodnoty proměnných. Za tímto účelem je zde alternativní zápis řetěze ohraničené uvozovkami. Navíc lze do něho vkládat speciální symboly pomocí notace se zpětným lomítkem: \n Znak LF (linefeed), neboli přechod na nový řádek (na unixu se používá LF k zalamování řádků). \r Znak CR (carriage return), neboli návrat vozíku (ve Windows se používá kombinace CR LF k zalomení řádku). \t Horizontální tabulátor. Některé symboly, které mají speciální význam, musí být uvozeny zpětným lomítkem, aby byly chápány pouze jako znaky: \\ (zpětné lomítko), \$ (znak dolaru), a pochopitelně uvozovky \". Navíc lze vkládat do řetězce znaky podle jejich ASCII hodnoty a to buď v osmičkovém, nebo v hexadecimálním zápisu. Např. mezeru (znak s číslem 32) lze zapsat osmičkově jako \40, nebo hexadecimálně \x20. Od PHP platí, že pokud použijete zpětné lomítko před jakýmkoli jiným znakem, bude chápáno jako obyčejné zpětné lomítko a vloží se do řetězce jako normální znak. Kromě speciálních symbolů lze do řetězců vkládat i hodnoty proměnných. Stačí uvést název proměnné v řetězci a interpret za něho automaticky dosadí hodnotu dané proměnné přetypovanou na řetězec. Martin Kruliš pouze ke studijním účelům strana 6 z 15

7 V případě, že by název proměnné kolidoval s jinými znaky v řetězci, je třeba ohraničit identifikátor proměnné složenými závorkami. Příklad 9: $num = 42; $str = "Hodnota \$num je $num." // ve $str je 'Hodnota $num je 42.' $kus = 'kus'; $str = "dva $kusy"; // nebude fungovat - proměnná $kusy neexistuje $str = "dva {$kusy" // musíme ohraničit identifikátor závorkami 3. Řídicí struktury V následujících příkladech budeme podmínkou rozumět výraz typu boolean (nebo takový, který lze na boolean automaticky přetypovat). Za příkaz budeme považovat volání funkce, řídící strukturu, blok příkazů uzavřený do složených závorek, nebo výraz ukončený středníkem. Syntaxe řídících struktur je téměř totožná se syntaxí v jazyce C. U většiny struktur tak bude vynechán podrobnější popis, neboť jejich princip fungování je totožný s většinou příbuzných jazyků. 3.1 Struktury pro větvení běhu kódu Nejednodušším příkazem je podmíněný příkaz. Může být zapsán několika způsoby: if (podmínka) příkaz; if (podmínka) příkaz1; else příkaz2; if (podmínka1) příkaz1; elseif (podmínka2) příkaz2; elseif... else příkazn; Pro usnadnění složitějších větvení je k dispozici příkaz switch, který má následující syntax: switch (výraz) { case hodnota:...příkazy... case hodnota2:... default:...příkazy... Při provádění této struktury se nejprve vyhodnotí její řídící výraz. Následně se od shora dolů procházejí návěstí case, a pokud se hodnota návěstí shoduje s hodnotou výrazu, skočí řízení programu na další příkaz následující za tímto case. Dále se provádí příkazy (s tím že se ostatní návěstí case ignorují), dokud program nenarazí na ukončující složenou závorku struktury switch, nebo dokud nenarazí na příkaz brake. Příkaz brake ukončí provádění kódu uvnitř struktury switch a pokračuje v kódu těsně za touto strukturou. Kromě návěstí case existuje ještě speciální návěstí default, které musí být vždy poslední, a do něhož je předáno řízení v případě, že žádný z předchozích case neuspěje. 3.2 Cykly Základní strukturou je while-cyklus, neboli cyklus s podmínkou na začátku. while (podmínka) příkaz; Tento cyklus vyhodnocuje podmínku před každým provedením příkazu. Pokud je podmínka nepravdivá, pokračuje se v běhu skriptu těsně za while strukturou. Doplňující strukturou je pak do-while cyklus, neboli cyklus s podmínkou na konci. do příkaz; while (podmínka); Tento cyklus vyhodnocuje podmínku až na konci (tj. po provedení příkazu). Z toho je na první pohled vidět, že příkaz se provede vždy alespoň jednou. Dále existuje struktura for-cyklus, která je vlastně jen zkratkou za while cyklus s inicializací. Martin Kruliš pouze ke studijním účelům strana 7 z 15

8 for (inicializace; podmínka; inkrementace) příkaz; je vlastně jen zkratkou za zápis inicializace; while (podmínka) { příkaz; inkrementace; Příklad 10 (snadný zápis cyklu pevné délky): for ($i = 0; $i < 10; $i++) echo $i; // vypíše čísla od 0 do 9. Kromě těchto cyklů obsahuje PHP také jeden speciální cyklus iterace přes všechny objekty. Tímto cyklem lze procházet pole nebo libovolné objekty implementující rozhraní Iterator. foreach (pole as hodnota) příkaz; foreach (pole as klíč => hodnota) příkaz; Tento příkaz projde všechny prvky daného pole a postupně je přiřazuje do proměnných hodnota (případně ještě uloží jejich klíč do příslušné proměnné). Tyto proměnné jsou k dispozici pouze v rámci provádění příkazu cyklu. Detailnějšímu popisu procházení polí se budeme věnovat v samostatné kapitole. Příklad 11: $pole = array(2, 42, 54, 1); // pole se 4mi prvky foreach($pole as $num) echo $num; // vypíše postupně 2, 42, 54 a 1 Uvnitř cyklů lze používat dva speciální příkazy break a continue. Příkaz break okamžitě ukončí provádění cyklu a skočí na první příkaz za cyklem. Příkaz continue přeskočí provádění zbytku aktuální iterace a započne iteraci novou. 4. Funkce 4.1 Základní syntax Funkce jsou základním stavebním kamenem každého procedurálního jazyka. Deklarace funkce má v PHP tvar: function identifikátor($arg1, $arg2,...) {... tělo funkce... Všimněme si, že parametry nemají žádný typ a stejně tak není udáván žádný návratový typ, neboť hodnoty předávané jako argumenty a návratová hodnota mohou být libovolného typu. Uvnitř funkce lze použít příkaz return, který ukončí provádění funkce. Příkaz return může být navíc následován návratovou hodnotou, která je předána ven z volání funkce. Funkce se volá zapsáním identifikátoru do zdrojového kódu následovaného kulatými závorkami se správným počtem argumentů. Kulaté závorky je třeba uvést i v případě, že funkce nemá žádné argumenty. Příklad 12: function pozdrav() { echo 'Vítejte...'; function umocni($x) { return $x * $x; // umocní $x a předá výsledek jako návratovou hodnotu pozdrav(); echo umocni(3); // vypíše 9 Martin Kruliš pouze ke studijním účelům strana 8 z 15

9 4.2 Lokální a globální proměnné Všechny proměnné deklarované ve volném kódu (mimo těla funkcí, metod a tříd) jsou brány jako globální proměnné. Uvnitř funkce jsou naopak všechny proměnné brány jako lokální (bez ohledu na to, zda existují stejnojmenné globální proměnné). Z funkce se dá ke globálním proměnným přistupovat přes super-globální pole $GLOBALS, které je viditelné ze všech částí kódu, nebo pomocí deklarace global, která zpřístupní zvolenou proměnnou (pokud existuje) v rámci kontextu funkce. Pro lepší pochopení je zde následující příklad. Příklad 13: $a = 2; $b = 3; function foo() { global $a; // zpřístupní globální proměnnou $a echo $a; // vypíše 2 echo $GLOBALS['b']; // vypíše přímo hodnotu glob. proměnné $b, tedy Předávání parametrů referencí Doposud jsme předpokládali, že jsou všechny parametry předávány hodnotou. Jazyk PHP podporuje rovněž vytváření referencí. Jedná se o obecný mechanismus popsaný v kapitole Reference, nikoli o speciální vlastnost funkcí, avšak s funkcemi bývá nejčastěji použit, takže se o něm zmíníme i zde. Pokud chceme předat parametr odkazem, je třeba před jeho deklaraci uvést znak &. Pro jednoduchost si lze představit, že tento znak funguje stejně jako např. klíčové slovo var v Pascalu. Podrobnější popis referencí naleznete v příslušné kapitole. Příklad 14: function inc(&$x) { $x++; $a = 2; inc($a); // $a bude teď mít hodnotu 3 5. Pole 5.1 Základní syntax Pole je v PHP velice silným datovým typem, který supluje i celou řadu jiných datových struktur. Na rozdíl od většiny C-čkových jazyků, pole v PHP jsou výhradně dynamická (tzn. nemají předem danou délku) a prvky lze do nich libovolně přidávat a odebírat. Spíše než klasickému poli se podobají seznamům. Zároveň zastávají i funkci hašovací tabulky, zásobníku, fronty a celé řady dalších struktur. Pole v PHP je vždy jednorozměrné. Jeho prvky mohou být indexovány celým číslem nebo řetězcem (a to dokonce kombinovaně tj. některé prvky číslem a některé řetězcem). Hodnotou prvku pole může mít jakýkoli datový typ (stejně jako u normálních proměnných), tedy včetně pole tím lze vytvářet pole vícerozměrná. Každá položka může být navíc jiného datového typu, takže lze pole použít např. jako strukturu uchovávající různá data, jako strom apod. Pole se vytváří speciální funkcí array, která bere jako argumenty výčet prvků. Mezi prvky lze uvádět pouze hodnoty (jim jsou poté automaticky dosazeny číselné klíče), nebo i hodnoty s klíčem. Martin Kruliš pouze ke studijním účelům strana 9 z 15

10 Příklad 15: $pole = array(3, 5, 7); // pole s prvky 3, 5 a 7 indexované čísly od 0 echo $pole[2] ; // vypíše hodnotu prvku s indexem 2, což je 7 // definujeme pole hodnot i s příslušnými klíči $barvy = array('pomeranč' => 'oranžový', 'banán' => 'žlutý', 'jahoda' => 'červená'); echo 'Banán je '. $barvy['banán']; K prvkům pole se přistupuje uvedením identifikátoru pole a následně klíče v hranatých závorkách. S prvky pole je to stejné jako s proměnnými. Deklarují se prvním přiřazením, funkce isset() otestuje, zda je položka pole nastavena a funkce unset() dokáže odstranit vybraný prvek pole. Příklad 16: $pole = array(); // vytvoří prázdné pole $pole['kniha'] = 'Stopařův průvodce'; // přidá prvek 'kniha' if ( isset($pole['autor']) ) echo $pole['autor']; // pokud existuje prvek 'autor' // vypíše jej unset($pole['kniha']) // odstraní pouze prvek 'kniha' Navíc lze přidávat prvky na konec a automaticky jim přiřadit o jedna vyšší číselný klíč, než je nejvyšší dosud použitý. Viz následující příklad. Příklad 17: $prvocisla = array(2, 3, 5); $prvocisla[] = 7; // přidá nový prvek 7 na konec pole s indexem 3 $mix = array(2, 4, 42 => 56, 'oook' => 'eeek', 'foo'); $mix[] = 'bar'; // přidá nový prvek 'bar' na konec pole s indexem Základní funkce pro práci s poli Existuje široká paleta funkcí pro práci s poli. Zde uvedeme pouze několik málo nejdůležitějších. Zbylé můžete nalézt např. v dokumentaci PHP. Vzhledem k tomu, že pole jsou vždy dynamická, je potřeba nějakým způsobem zjistit, kolik prvků pole obsahuje. K tomuto účelu slouží funkce count(). Každé pole má vnitřní ukazatel (pro jednoduchost ho v následujícím textu označíme pouze ukazatel), který v každém okamžiku ukazuje na jeden prvek pole, případně za poslední prvek pole. Funkce current() vrací hodnotu prvku, na který je právě ukazatel nasměrován. Obdobně funkce key() vrací klíč tohoto prvku. S ukazatelem lze pochopitelně manipulovat. Funkce reset() nastaví ukazatel zpět na první položku v poli. Analogicky funkce end() přemístí ukazatel na poslední prvek pole. Dále existují funkce next() a prev(), které posouvají ukazatel na následující (resp. na předchozí) prvek. Pro úplnost zbývá uvést, že pořadí prvků v poli je dáno chronologickým pořadím vkládání prvků do pole, případně pořadím argumentů v rámci volání funkce array(). Třešničkou na dortu je pak vestavěná struktura foreach, která se chová jako for-cyklus, procházející přes všechny položky pole. Viz kapitola Řídící struktury, podkapitola Cykly. Další poměrně častou operací prováděnou nad poli je hledání konkrétního prvku (pochopitelně nikoli podle klíče, ale podle hodnoty). Existuje funkce in_array(), která zjišťuje, zda se daná hodnota v poli nachází, či nikoli. Prvky pole je občas potřeba přerovnat. K dispozici máme celou řadu funkcí třídících funkcí (sort(), usort(), asort(),...), které se lehce liší podmínkami (zda se mají třídit pouze hodnoty, nebo i klíče, kterým směrem se má třídit apod.). Opačnou službu pak poskytne funkce shuffle(), která náhodně prohází prvky pole. Martin Kruliš pouze ke studijním účelům strana 10 z 15

11 Jak již bylo zmíněno, pole lze používat také jako frontu, nebo zásobník. Pro pohodlnou práci s těmito strukturami pak slouží několik funkcí. Funkce array_push() přidá prvek na konec pole, analogicky array_pop() prvek z konce pole odebere. Obdobně funkce array_unshift() přidá prvek na začátek pole a array_shift() tento prvek odstraní. Na závěr bych ještě zmínil funkci array_merge(), která spojí dvě (případně i více) pole dohromady tak, aby klíče zůstaly unikátní. Při kolizi klíčů se použije hodnota ve druhém (resp. nejpozději uvedeném na seznamu parametrů) poli. 6. Objekty Syntaxe a princip fungování objektů se značně liší mezi verzemi PHP. První pokus o zakomponování objektů do jazyka učinilo PHP 4. Tento pokus nebyl příliš úspěšný a až PHP verze 5 přineslo rozumný návrh tříd a objektů těmi se právě budeme zabývat. Silně nedoporučujeme používat objekty v PHP verze 4. Toto téma je bohužel značně rozsáhlé a tento text vzniká v určité časové tísni. Z tohoto důvodů je prozatím popis objektů a tříd v PHP vynechán a bude doplněn v budoucích verzích textu. Přehledný popis jejich fungování naleznete v manuálu PHP. 7. Reference 7.1 Základní informace a vytváření referencí Reference byly lehce nakousnuty na závěr kapitoly Funkce. Nyní se na ně podíváme trochu podrobněji. Nejprve položme otázku, co jsou to vlastně reference. Reference jsou odkazy, které umožňují přistupovat ke stejnému obsahu (stejným datům) z různých proměnných. Z hlediska programátora vypadá situace takto: Když změníte hodnotu jedné proměnné, změní se i všem ostatním. Proměnné v PHP si lze představit obdobně jako asociativní pole. Je to tabulka s položkami název hodnota. Pokud přiřadíme jednu proměnnou do druhé (přiřazovacím operátorem =), vytvoří se v tabulce nový záznam, s novým názvem proměnné a hodnota se zkopíruje. Tím má každá proměnná vlastní hodnotu a při zápisu do jedné z nich zůstane hodnota té druhé nezměněna. Naopak při vytváření referencí se v tabulce nevytvoří nový záznam, pouze se ke stávajícímu záznamu přidá další název. Položka může mít libovolné množství těchto názvů, ale stále má jenu hodnotu. Je jasné, že pokud se tato hodnota změní (přístupem přes kteroukoli z proměnných), uvidí tuto změnu i všechny ostatní proměnné. Syntaxe referencí je jednoduchá a už jsme ji nastínili v kapitole Funkce. Před proměnnou, jejíž referenci chceme získat, stačí uvést operátor &. Tímto způsobem lze získat reference nejen na proměnné, ale třeba i na položky pole. Příklad 17: $a = 3; $b = &$a; // vytvoříme referenci na proměnnou $a $b++; // změníme hodnotu $b, ale změna se projeví i pro $a echo($a); // vypíše 4 (což je nová hodnota $a i $b) $pole = array(3, 42, 54); $polozka = &$pole[1]; // také můžeme vytvořit ref. na jednu položku pole 7.2 Rušení referencí Reference se ruší příkazem unset(). Do teď jsme říkali, že unset() ruší proměnné. To není tak docela přesné, neboť unset() pouze odstraní název proměnné z tabulky proměnných. Hodnota se odstraní až v případě, že na ni neodkazuje žádná proměnná. Princip fungování je podobný například unixovému příkazu unlink. Martin Kruliš pouze ke studijním účelům strana 11 z 15

12 Příklad 18: $a = 42; $b = &$a; // $a i $b teď ukazují na stejná data (hodnotu 42) unset($a); // zrušením $a se nezruší $b, ani hodnota 42 unset($b); // po zrušení $b na hodnotu 42 nic neodkazuje > zruší se také 7.3 Používání referencí Reference se používají na celé řadě míst. Nejběžnější je použití při předávání parametrů funkcí (viz kapitola Funkce ). Reference se ovšem používají v některých případech i automaticky, aniž by to programátor explicitně uváděl. Jako příklad poslouží používání globálních proměnných uvnitř funkcí. Jen zopakujeme, že globální proměnná se uvnitř funkce zpřístupní deklarací global. Tato deklarace je ovšem pouze zkratkou za referenci. Následující dva zápisy provedou totéž: global $x; a $x = &$GLOBALS['x']; 7.4 Rozdíl mezi referencemi a ukazateli Při práci s referencemi je třeba mít neustále na paměti, že reference nejsou ukazatele. V celé řadě situací se sice budou chovat stejně, avšak existují konstrukce, které nemusí s referencemi fungovat. Pro lepší pochopení je zde následující příklad. Příklad 19: $bar = 42; $spam = 54; function foo(&$var) { $var = &$GLOBALS['spam']; foo($bar); Proti prvotním očekáváním se proměnná $bar vůbec nezmění. Když dojde k přiřazení do $var, nepřepíše se hodnota v něm uložená. Pouze se zruší reference $var (která se při zavolání funkce nastavila na hodnotu $bar) a nastaví se na globální proměnnou $spam. Původní proměnná $bar zůstane nedotčena. Pokud by se reference chovaly stejně jako ukazatele, přiřadila by se do $bar reference na $spam. 8. Přehled vybraných vestavěných funkcí PHP nabízí obrovské množství vestavěných funkcí (a tříd), které usnadňují programátorovu práci. Další funkce jsou pak dostupné v rozšiřujících modulech PHP. V tomto textu není zdaleka prostor popsat je všechny, a proto se zaměříme na ty opravdu nejdůležitější. Kompletní přehled těchto funkcí naleznete v manuálu PHP. 8.1 Funkce pro práci s řetězci Zpracování řetězců je, vzhledem ke způsobu použití jazyka PHP, jedním z nejčastěji používaných úkolů. Vestavěné knihovny obsahují širokou paletu funkcí pro práci s řetězci, vyhledávání textů nebo třeba zpracování regulárních výrazů. Zde je výběr několika nejzajímavějších. strlen($string) Vrací délku řetězce $string ve znacích. strpos($haystack, $needle) Vrací index prvního výskytu podřetězce $needle v řetězci $haystack. Znaky se indexují od 0. Pokud není podřetězec nalezen, vrací false. strcoll($str1, $str2) Porovná řetězce $str1 a $str2 podle místních zvyklostí (jazyka). Vrací číslo menší než 0, pokud je $str1 menší, právě číslo 0, pokud jsou řetězce stejné a číslo větší než 0, pokud je $str1 větší, než $str2. trim($str) Vrací řetězec $str bez okrajových bílých znaků. Martin Kruliš pouze ke studijním účelům strana 12 z 15

13 substr($str, $start, $len) Vrací podřetězec řetězce $str od offsetu $start (indexuje se od 0) délky $len. strtolower($str) Převede všechna velká písmena v řetězci $str na malá a výsledek vrátí. Existuje analogická funkce strtoupper(), která naopak převádí všechna písmena na velká. 8.2 Regulární výrazy Následující funkce jsou zvláštní tím, že pracují s regulárními výrazy. Regulární výraz je řetězec šablona, podle které lze porovnávat jiné řetězce. Výsledkem takového porovnání může být pouze pravdivostní informace (řetězec vyhovuje/nevyhovuje), případně se dají regulární výrazy použít pro vyhledávání v řetězcích, nahrazování, nebo dokonce získávání podřetězců. Než si představíme funkce samotné, shrneme stručně syntax regulárních výrazů. Pro úplnou referenci regulárních výrazů doporučuji nahlédnout do manuálových stránek regex(7) na libovolném unixu. Regulární výrazy v PHP odpovídají standardu POSIX-extended. Libovolné znaky, které nemají speciální význam (např. písmena), jsou brány jako hledané znaky. Tj. regulárnímu výrazu 'Pepa', budou odpovídat všechny řetězce, které obsahují podřetězec 'Pepa' (např. 'Tady bydlí Pepa Novák.'). V předchozím příkladu se mohl zmíněný podřetězec vyskytovat kdekoli v prohledávaném řetězci. Někdy může být potřeba prohledávat pouze začátek, nebo konec řetězce. K tomu slouží symboly ^ (začátek) a $ (konec). Výraz '^ing' bude odpovídat řetězci 'ing. Pepa Novák', ale už ne řetězci 'Josef King', protože 'ing' v něm není na začátku. Analogicky 'ová$' bude odpovídat řetězci 'Alena Nováková', ale už ne třeba 'Jiří Sovák', protože Sovák (jako každý správný chlap) nemá 'ová' na konci svého příjmení. Místo pevně daných znaků lze doplnit znak '.', který funguje jako žolík - zastupuje libovolný jeden znak. Tedy např. 'p.s' bude odpovídat řetězcům 'hlídací pes' nebo 'cestovní pas', ale už ne třeba 'prasátko', protože mezi 'p' a 's' musí být právě jedno písmeno. Obdobně můžeme dát na výběr z pevně dané množiny znaků. Tato množina musí být uzavřena v hranatých závorkách. Mohou se v ní používat také intervaly znaků (např. všechna malá písmena můžeme zapsat jako '[a-z]'). Výraz '^[Hh]roch$' odpovídá pouze řetězcům 'hroch' a 'Hroch'. Případně '\$[a-za-z0-9_]' odpovídá všem jednopísmenným proměnným zapsaným v kódu PHP. Vyhledávat lze také doplněk množiny. Doplněk je uvozen znakem ^ (uvnitř hranatých závorek) a následuje seznam znaků, které se na daném místě nesmí vyskytnout. Např. '[^0-9]' představuje libovolný znak kromě číslice. Regulární výraz, nebo podvýraz uzavřený do kulatých závorek, může být složen z několika možností. Tyto možnosti jsou samy o sobě regulární výrazy a oddělují se svislítkem. Aby řetězec vyhovoval takovémuto regulárnímu výrazu, stačí, aby vyhovoval některé z jeho možností. Např. 'malý velký tlustý tenký' bude vyhovovat řetězcům 'malý Bobeš', 'velký Manitou' i 'tenký led'. Vzor '(vý Ná zá)chod' bude odpovídat řetězcům 'východ', 'Náchod', ale i 'záchod'. Každý atom (základní kus výrazu, který představuje znak, množinu znaků, nebo podvýraz uzavřený do kulatých závorek), lze nechat opakovat. Existují tři speciální symboly (*, + a?), které se uvádí za atomem a určují počet opakování. Znak * zastupuje libovolný počet opakování (včetně 0-krát), znak + má stejný význam, ale daný atom se musí opakovat alespoň jedenkrát. Symbol? označuje možné vypuštění jinými slovy povoluje pouze opakování 0 nebo 1 krát. Například 'Aho+j' bude vyhovovat řetězcům 'Ahoj' i 'Ahooooj', '.*' bude vyhovovat libovolnému řetězci (včetně prázdného). Vzor '^(ne)?lehký$' bude vyhovovat pouze řetězcům 'lehký' a 'nelehký'. Pokud potřebujeme nějaký konkrétní počet opakování, můžeme tento počet uvést do složených závorek za opakovaný atom (např. '[0-9]{4' odpovídá čtyřcifernému číslu, které ovšem může mít na začátku nuly). Také můžeme uvést rozsah dvou čísel (minimální a maximální počet opakování). Pokud maximální počet vynecháme, je brán jako nekonečno. Výraz '[a-z]{0,1' je stejný jako '[a-z]?', případně '[0-9]{1,' je totéž jako '[0-9]+'. Nyní si představíme funkce pro práci s řetězci pomocí regulárních výrazů. ereg($ptrn, $str, [$regs]) Otestuje, zda řetězec $str vyhovuje regulárnímu výrazu $ptrn. Uvnitř regulárního výrazu mohou navíc být ohraničeny části řetězce, které se zkopírují do pole $regs. Úplně stejně funguje také funkce eregi(), která ale není case-sensitivní. Martin Kruliš pouze ke studijním účelům strana 13 z 15

14 ereg_replace($ptrn, $replace, $str) Nahradí všechny výskyty vzoru $ptrn řetězcem $replace uvnitř řetězce $str a výsledek předá jako návratovou hodnotu. Existuje také funkce eregi_replace(), která funguje stejně, ale není case-sensitivní. split($ptrn, $str, [$limit]) Rozdělí řetězec $str do pole řetězců, které předá jako návratovou hodnotu. Jako oddělovač se použije regulární výraz $ptrn. Nepovinný parametr $limit určuje maximální počet položek v poli (zbylé, které překračují limit, jsou odstraněny). Příklad 20: if (ereg('^([0-9]{1,2)\.([0-9]{1,2)\.([0-9]{4)$', $date, $regs)) echo('platné datum. Den: '. $regs[1]. ', měsíc: '. $regs[2]. ', rok: '. $regs[3]); else echo('datum není v platném formátu.'); // rozdělí řetězec na slova a uloží je do pole $words = split("[ \t\n\r]+", $str); $str = ereg_replace('<[^>]*>', '', $str); // odstraní z textu $str tagy 8.3 Funkce pro práci se soubory Rozhraní pro práci se soubory je velice podobné rozhraní v jazyce C. Soubor je potřeba nejprve otevřít a získat tak handle na soubor. Všechny ostatní funkce pak potřebují tento handle, aby s ním mohly pracovat. fopen($filename, $mode) Otevře soubor a vrací handle na něj. Parametr $mode určuje, jak má být soubor otevřen (zápis je totožný jako v jazyce C). Funkce vrací false, pokud soubor nelze otevřít požadovaným způsobem. fclose($fp) Zavře soubor a zruší platnost jeho $fp handle. fread($fp, $len) Přečte $len bytů od aktuální pozice ze souboru s $fp handle a vrátí je jako řetězec. V případě, že je v souboru méně bytů než $len, vrátí všechna data ze zbytku souboru. Zároveň posune vnitřní ukazatel za data, která právě přečetl. fwrite($fp, $str, [$len]) Zapíše do souboru s handle $fp na aktuální pozici řetězec $str. Pokud je uveden parametr $len, zapíše pouze prvních $len znaků z řetězce $str. Zároveň posune vnitřní ukazatel za data, která právě zapsal. ftell($fp) Vrací aktuální pozici vnitřního ukazatele ze souboru $fp. fseek($fp, $offset) Nastaví aktuální pozici vnitřního ukazatele v souboru $fp na daný $offset. Funkcí, které pracují se soubory, je celá řada a všechny se sem nevejdou. Na ukázku ještě uvedeme dvě zajímavé funkce, které nepotřebují handle vracený fopen(), ale vystačí si s názvem (cestou k) souboru. filesize($filename) Vrací velikost souboru v bytech. file($filename) Načte celý textový soubor jako pole, kde každý řádek v souboru je uložen jako samostatný prvek pole. 8.4 Funkce pro práci s databázi MySQL Pro práci s databázi MySQL existuje v PHP rozšíření mysql, které implementuje kompletního databázového klienta. Obdobně jako u souborů, i zde funguje mechanismus použití handle, který reprezentuje spojení s databází (díky tomu lze otevírat více spojení třeba i k různým databázím). V případě, že chcete použít jen jedno MySQL spojení, nemusí se tento handle (u funkcí bývá uveden jako $link) uvádět funkce si ho zjistí samy. mysql_connect($server, $user, $password) Připojí se k zadanému serveru ($server může být doménový název, nebo IP adresa) se zadaným uživatelským jménem a heslem. Vrací handle reprezentující spojení s databází. Pokud se spojení nezdaří, vrací false. Martin Kruliš pouze ke studijním účelům strana 14 z 15

15 mysql_select_db($dbname, [$link]) Vybere databázi na daném MySQL serveru. Všechny ostatní příkazy pak pracují s touto databází. mysql_query($query, [$link]) Pošle SQL dotaz na server. V případě SELECT dotazu vrací speciální resource, který lze dále zpracovat funkcemi mysql API. U ostatních dotazů vrací true, pokud se dotaz povede. Pokud dotaz selže, vrací vždy false. mysql_errno([$link]) Vrací číslo chyby, která nastala při posledním volání nějaké mysql funkce, případně nulu, pokud nenastala žádná chyba. mysql_error([$link]) Vrací řetězec s poslední chybovou hláškou, případně prázdný řetězec, pokud žádná chyba nenastala. mysql_real_escape_string($query, [$link]) Ošetří řetězec $query, aby v něm nebyly znaky, které nelze použít v SQL dotazu. Všechny hodnoty (zvláště pak ty získané od uživatele např. z formuláře) by měly být před vložením do SQL dotazu takto ošetřeny, aby se předešlo SQL-injection útokům. mysql_fetch_assoc($result) Načte další řádek z výsledku SQL dotazu a vrátí jej jako pole. Jednotlivé buňky jsou indexovány názvy sloupců (z SQL dotazu). Existují i jiné mysql_fetch_ funkce, které vrací řádky v jiných formátech. Jako v jiných kapitolách, ani zde není uveden kompletní výčet všech funkcí. Zbylé je možné nalézt v dokumentaci. 8.5 Co PHP ještě umí... Jazyk PHP má celou řadu vestavěných funkcí (resp. knihoven). Zde uvádíme namátkou pouze jejich neúplný výčet. Navíc existují i externí knihovny a frameworky, které tyto funkce ještě rozšiřují. Za všechny jmenujme snad jen PEAR (PHP Extension and Application Repository), což je celý archív různých komonent, nebo Zend framework populární knihovna, jejíž vývoj zaštiťuje přímo firma Zend (odpovědná za vývoj jádra PHP). Zde je slíbený (neúplný) výčet možností PHP. cookies, sessions práce s nejrůznějšími databázovými systémy (MSSQL, PostgreSQL, Oracle, ODBC,...) síťové funkce (TCP, UDP, HTTP, FTP, SMTP, POP3, IMAP,...) funkce pro práci s texty (převody znakových sad, překlady) matematické funkce, práce s libovolně velkými (přesnými) čísly funkce pro práci s XML dokumenty práce s obrázky, PDF dokumenty... komprese, kryptografie 9. Závěr aneb co se jinam nevešlo Na závěr ještě doplňme pár slov o PHP jako takovém. PHP není jediným skriptovacím jazykem, který je určen pro psaní webových aplikací. Existuje celá řada jiných jazyků, které mají také své přednosti i nedostatky (Java, ASP, Perl, Python, Ruby,...). Pro PHP však mluví jeho jednoduchost a masové rozšíření na webhostingových serverech. Kromě toho existují i projekty, které umožňují použít PHP např. s grafickými knihovnami GTK+ a vytvářet tak čistě desktopové aplikace. PHP lze získat na stránkách kde kromě nejrůznějších instalačních balíčků naleznete i kompletní dokumentaci (ta se s malým zpožděním objevuje i v českém jazyce). Martin Kruliš pouze ke studijním účelům strana 15 z 15

Základy PHP. Úvod do jazyka PHP a principů skriptování na straně serveru

Základy PHP. Úvod do jazyka PHP a principů skriptování na straně serveru Základy PHP Úvod do jazyka PHP a principů skriptování na straně serveru Princip fungování web serveru Server se podívá do svého datového úložiště Hypertext Transfer Protocol Internet Internet Nalezne požadovaný

Více

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

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech

Více

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

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky. PHP - úvod Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky. Klíčové pojmy: PHP, webový prohlížeč, HTTP, FTP Základní pojmy služba WWW = 1990 první prototyp serveru, od roku 1994

Více

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

PHP tutoriál (základy PHP snadno a rychle) PHP tutoriál (základy PHP snadno a rychle) Druhá, vylepšená offline verze. Připravil Štěpán Mátl, http://khamos.wz.cz Chceš se naučit základy PHP? V tom případě si prostuduj tento rychlý průvodce. Nejdříve

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

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

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě PHP PHP původně znamenalo Personal Home Page a vzniklo v roce 1996, od té doby prošlo velkými změnami a nyní tato zkratka znamená Hypertext Preprocessor. PHP je skriptovací programovací jazyk, určený především

Více

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

Sada 1 - PHP. 03. Proměnné, konstanty S třední škola stavební Jihlava Sada 1 - PHP 03. Proměnné, konstanty Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284 Šablona: III/2 - inovace a

Více

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

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu } 5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu

Více

Programování v jazyce JavaScript

Programování v jazyce JavaScript Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Operátory a příkazy BI-JSC Evropský sociální fond

Více

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

5 Přehled operátorů, příkazy, přetypování 5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování

Více

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

Vstupní požadavky, doporučení a metodické pokyny Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem

Více

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

6. Příkazy a řídící struktury v Javě 6. Příkazy a řídící struktury v Javě Příkazy v Javě Příkazy v Javě Řídicí příkazy (větvení, cykly) Přiřazovací příkaz = Řízení toku programu (větvení, cykly) Volání metody Návrat z metody - příkaz return

Více

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

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

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

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy

Více

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: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

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

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

Více

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

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

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

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

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

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

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

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout.   tel: Skripta ke školení Základy VBA vypracoval: Tomáš Herout e-mail: herout@helpmark.cz tel: 739 719 548 2016 Obsah TROCHA TEORIE VBA...2 ZPŮSOB ZÁPISU VE VBA...2 CO JE TO FUNKCE...2 CO JE TO PROCEDURA...2

Více

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: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

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

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b Výrazy a operátory i = 2 i = 2; to je výraz to je příkaz 4. Operátory Unární - unární a unární + Např.: +5-5 -8.345 -a +b - unární ++ - inkrement - zvýší hodnotu proměnné o 1 - unární -- - dekrement -

Více

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

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5 Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5

Více

6 Příkazy řízení toku

6 Příkazy řízení toku 6 Příkazy řízení toku Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům pro řízení toku programu. Pro všechny tyto základní

Více

1 Webový server, instalace PHP a MySQL 13

1 Webový server, instalace PHP a MySQL 13 Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

MAXScript výukový kurz

MAXScript výukový kurz MAXScript výukový kurz Díl čtvrtý jazyk MAXScript, část I. Jan Melichar, březen 2008 Jan Melichar (aka JME) strana 1 OBSAH ÚVOD... 4 ZÁKLADNÍ PŘÍKAZY... 5 OPERÁTORY... 6 PROMĚNNÉ... 6 POLE... 7 ZÁVĚREM...

Více

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

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo Operátory, výrazy Tomáš Pitner, upravil Marek Šabo Operátor "Znaménko operace", pokyn pro vykonání operace při vyhodnocení výrazu. V Javě mají operátory napevno daný význam, nelze je přetěžovat jako v

Více

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

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007 WSH Windows Script Hosting OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007 Co je skript? Skriptování nástroj pro správu systému a automatizaci úloh Umožňuje psát skripty jednoduché interpretované programové

Více

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.

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. 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. 1 Příkaz expr výraz Celočíselná aritmetika I Zašle na standardní výstup vyhodnocení výrazu

Více

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

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h> 9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include int main(void) { int dcislo, kolikbcislic = 0, mezivysledek = 0, i; int vysledek[1000]; printf("zadejte

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

Zápis programu v jazyce C#

Zápis programu v jazyce C# Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač

Více

Kurz LSL skriptování. Shiny Iceberg 2009

Kurz LSL skriptování. Shiny Iceberg 2009 Kurz LSL skriptování Shiny Iceberg 2009 2 2 Kurz LSL skriptování Shiny Iceberg v Second Life od roku 2006 shiny.iceberg@virtualmagazine.cz Aktuální projekty virtualmagazine.cz Urbanica, Shinyland Bwindi

Více

Jazyk C# a platforma.net

Jazyk C# a platforma.net Jazyk C# a platforma.net Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Syntaxe jazyka C# - 1. část BI-DNP Evropský sociální fond

Více

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

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11 Obsah Úvodem 9 Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10 Kapitola 1 Než začneme 11 Dynamické vs. statické stránky 11 Co je a k čemu slouží PHP 12 Instalace potřebného softwarového

Více

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

Databázové aplikace pro internetové prostředí. 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Databázové aplikace pro internetové prostředí 01 - PHP úvod, základní princip, vkládání skriptu, komentáře, výpis na obrazovku Projekt: Inovace výuky prostřednictvím ICT Registrační číslo: CZ.1.07/1.5.00/34.250

Více

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL,

Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL, Anotace sady: Dynamické internetové stránky, VY_32_INOVACE_PRG_PHP_01 Klíčová slova: dynamické internetové stránky, HTML, CSS, PHP, SQL, MySQL, Stupeň a typ vzdělávání: gymnaziální vzdělávání, 4. ročník

Více

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

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 Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro

Více

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

ANOTACE vytvořených/inovovaných materiálů ANOTACE vytvořených/inovovaných materiálů Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Formát Druh učebního materiálu Druh interaktivity CZ.1.07/1.5.00/34.0722 III/2 Inovace a

Více

Regulární výrazy. Vzory

Regulární výrazy. Vzory Regulární výrazy Regulární výrazy jsou určeny pro práci s textovými řetězci, jsou součástí J2SDK až od verze 1.4, v předchozích verzích je potřeba použít některou z externích knihoven, např. knihovnu ORO

Více

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

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina 5a. Makra Visual Basic pro Microsoft Escel Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty Zde bude stránka o cyklických odkazech a iteracích.

Více

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

PSK3-9. Základy skriptování. Hlavička PSK3-9 Název školy: Autor: Anotace: Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Základy skriptování v unixovém shellu Vzdělávací oblast: Informační a komunikační technologie

Více

1. Webový server, instalace PHP a MySQL 13

1. Webový server, instalace PHP a MySQL 13 Úvod 11 1. Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Programování v jazyce JavaScript

Programování v jazyce JavaScript Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Syntaxe 1. část BI-JSC Evropský sociální fond

Více

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

PHP. Čtvrtek 8. září. Čtvrtek 15. září. Anonymní test znalostí Čtvrtek 8. září Anonymní test znalostí Čtvrtek 15. září PHP je programovací jazyk, který pracuje na straně serveru. S PHP můžete ukládat a měnit data webových stránek. PHP původně znamená Personal Home

Více

Datové typy strana 29

Datové typy strana 29 Datové typy strana 29 3. Datové typy Jak již bylo uvedeno, Java je přísně typový jazyk, proto je vždy nutno uvést datový typ datového atributu, formálního parametru metody, návratové hodnoty metody nebo

Více

Assembler - 5.část. poslední změna této stránky: Zpět

Assembler - 5.část. poslední změna této stránky: Zpět 1 z 5 19.2.2007 7:52 Assembler - 5.část poslední změna této stránky: 9.2.2007 1. Pseudoinstrukce a direktivy Zpět Kromě instrukcí můžete v Assembleru psát také další konstrukce, které se obšem nepřekládají

Více

Úvod do programování. Lekce 1

Úvod do programování. Lekce 1 Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

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ů

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ů 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ů cykly: for, while kolekce: seznam, n-tice, slovník funkce, list

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

M4 PDF rozšíření. Modul pro PrestaShop. http://www.presta-addons.com

M4 PDF rozšíření. Modul pro PrestaShop. http://www.presta-addons.com M4 PDF rozšíření Modul pro PrestaShop http://www.presta-addons.com Obsah Úvod... 2 Vlastnosti... 2 Jak modul funguje... 2 Zdroje dat... 3 Šablony... 4 A. Označení šablon... 4 B. Funkce Smarty... 5 C. Definice

Více

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

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech 7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,

Více

Inovace bakalářského studijního oboru Aplikovaná chemie http://aplchem.upol.cz

Inovace bakalářského studijního oboru Aplikovaná chemie http://aplchem.upol.cz Inovace bakalářského studijního oboru Aplikovaná chemie http://aplchem.upol.cz CZ.1.07/2.2.00/15.0247 Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. Tvorba

Více

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Návrh a tvorba WWW stránek 1/14. PHP a databáze Návrh a tvorba WWW stránek 1/14 PHP a databáze nejčastěji MySQL součástí balíčků PHP navíc podporuje standard ODBC PHP nemá žádné šablony pro práci s databází princip práce s databází je stále stejný opakované

Více

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

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 Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární

Více

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

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Příkaz switch Příkaz switch provede příslušnou skupinu příkazů na základě hodnoty proměnné (celočíselné

Více

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek Co je to webová aplikace? příklady virtuální obchodní dům intranetový IS podniku vyhledávací služby aplikace jako každá jiná přístupná

Více

První kapitola úvod do problematiky

První kapitola úvod do problematiky První kapitola úvod do problematiky Co je to Flex Adobe Flex je ActionSript (AS) framework pro tvorbu Rich Internet Aplications (RIA), tedy knihovna AS tříd pro Flash. Flex používáme k vytvoření SWF souboru

Více

Tabulkový procesor. Základní rysy

Tabulkový procesor. Základní rysy Tabulkový procesor Tabulkový procesor je počítačový program zpracovávající data uložená v buňkách tabulky. Program umožňuje použití vzorců pro práci s daty a zobrazuje výsledné hodnoty podle vstupních

Více

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

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi) Programovací jazyk - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi) Odlišnosti implementace od normy - odchylky např.: nepovinná hlavička programu odlišná

Více

Programování v C++, 2. cvičení

Programování v C++, 2. cvičení Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule

Více

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Využití OOP v praxi -- Knihovna PHP -- Interval.cz Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování

Více

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

Paměť počítače. alg2 1 Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových

Více

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

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 Jazyk C Program v jazyku C má následující strukturu: Direktivy procesoru Globální definice (platné a známé v celém programu) Funkce Hlavička funkce Tělo funkce je uzavřeno mezi složené závorky { Lokální

Více

VISUAL BASIC. Práce se soubory

VISUAL BASIC. Práce se soubory VISUAL BASIC Práce se soubory Práce se soubory 1/2 2 Vstupní data pro programy bývají uloženy do souborů Vstupy pro výpočet, nastavení vzhledu aplikace Výsledky práce programu je potřeba uchovat uložit

Více

Webové Aplikace (6. přednáška)

Webové Aplikace (6. přednáška) Webové Aplikace (6. přednáška) Co je to Webová Aplikace Co je to Webová Aplikace Klient/Server model uživatelské rozhraní běží na straně klienta (prohlížeč) "logika" programu běží na serveru klient (prohlížeč)

Více

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

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií 1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední

Více

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

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody 4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina Cyklické odkazy a iterativní výpočty

Více

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod 11. 1. Vítejte v Ruby 15. O autorovi 9 Poděkování 9

Obsah. Začínáme programovat v Ruby on Rails 9. Úvod 11. 1. Vítejte v Ruby 15. O autorovi 9 Poděkování 9 Začínáme programovat v Ruby on Rails 9 O autorovi 9 Poděkování 9 Úvod 11 Komu je kniha určena 11 Jak je kniha uspořádána 11 Co ke knize potřebujete 12 Konvence 12 Zdrojový kód 13 Poznámka redakce českého

Více

Ukázka knihy z internetového knihkupectví www.kosmas.cz

Ukázka knihy z internetového knihkupectví www.kosmas.cz Ukázka knihy z internetového knihkupectví www.kosmas.cz U k á z k a k n i h y z i n t e r n e t o v é h o k n i h k u p e c t v í w w w. k o s m a s. c z, U I D : K O S 1 8 1 2 0 1 U k á z k a k n i h

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,

Více

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

DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve

Více

Úvod do programování 6. hodina

Úvod do programování 6. hodina Úvod do programování 6. hodina RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015 Umíme z minulé hodiny Algoritmy Třídění pole: Selection

Více

Aplikační vrstva. Úvod do Php. Ing. Martin Dostal

Aplikační vrstva. Úvod do Php. Ing. Martin Dostal Aplikační vrstva Úvod do Php Ing. Martin Dostal Co to je PHP? php soubory se nekompilují, interpret je spouští přímo bez překladu php běží na serveru php soubor je.txt soubor obsahující php kód: Zkrácený

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; Vícerozměrné pole type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; M[2,3] := 3145; - počet indexů není omezen (v praxi obvykle nejvýše tři) - více indexů pomalejší přístup k prvku (počítá

Více

MQL4 COURSE. By Coders guru www.forex-tsd.com. -5 Smyčky & Rozhodnutí Part 1

MQL4 COURSE. By Coders guru www.forex-tsd.com. -5 Smyčky & Rozhodnutí Part 1 MQL4 COURSE By Coders guru www.forex-tsd.com -5 Smyčky & Rozhodnutí Part 1 Vítejte v páté lekci mého kurzu MQL4. Předchozí lekci si můžete stáhnout z tohoto odkazu: http://forex-tsd.com /attachment.php?attachmentid=399

Více

Konstruktory a destruktory

Konstruktory a destruktory Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,

Více

6. blok část C Množinové operátory

6. blok část C Množinové operátory 6. blok část C Množinové operátory Studijní cíl Tento blok je věnován problematice množinových operátorů a práce s množinovými operátory v jazyce SQL. Čtenáři se seznámí s operátory, UNION, a INTERSECT.

Více

PROGRAMOVÁNÍ V SHELLU

PROGRAMOVÁNÍ V SHELLU PROGRAMOVÁNÍ V SHELLU Prostředí, jazyk, zdrojový kód chceme-li posloupnost jistých příkazů používat opakovaně, případně z různých míst adresářové struktury, můžeme tuto posloupnost uložit souboru, který

Více

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44 Algoritmizace a programování Ak. rok 2012/2013 vbp 1. ze 44 Vladimír Beneš Petrovický K101 katedra matematiky, statistiky a informačních technologií vedoucí katedry E-mail: vbenes@bivs.cz Telefon: 251

Více

PŘETĚŽOVÁNÍ OPERÁTORŮ

PŘETĚŽOVÁNÍ OPERÁTORŮ PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako

Více

LEKCE 6. Operátory. V této lekci najdete:

LEKCE 6. Operátory. V této lekci najdete: LEKCE 6 Operátory V této lekci najdete: Aritmetické operátory...94 Porovnávací operátory...96 Operátor řetězení...97 Bitové logické operátory...97 Další operátory...101 92 ČÁST I: Programování v jazyce

Více

PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2

PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2 PI JE JEDNODUCHÝ IMPERATIVNÍ PROGRAMOVACÍ JAZYK OBSAHUJE PODPORU ANOTACÍ NEOBSAHUJE NĚKTERÉ TYPICKÉ KONSTRUKTY PROGRAMOVACÍCH JAZYKŮ JAKO JSOU REFERENCE, UKAZATELE, GLOBÁLNÍ PROMĚNNÉ PODOBÁ SE JAZYKU C

Více

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

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů Začínáme vážně programovat Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů Podmínky a cykly Dokončení stručného přehledu řídících struktur jazyka C. Složený příkaz, blok Pascalské

Více

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

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5 Obsah Obsah 1 Řídicí struktury 1 2 Podmínka 1 2.1 Podmínka typu case......................... 2 3 Příkaz skoku 3 4 Cykly 4 4.1 Cyklus s podmínkou na začátku................... 4 4.2 Cyklus s podmínkou

Více

HTTP. Webový server. generátor HTML stránek (CGI, Perl, PHP, Python, Ruby, Java, ASP.NET) zpracování požadavku/ odeslání odpovědi.

HTTP. Webový server. generátor HTML stránek (CGI, Perl, PHP, Python, Ruby, Java, ASP.NET) zpracování požadavku/ odeslání odpovědi. Základy jazyka PHP Martin Klíma Dynamický web Webový klient požadavek HTTP odpověď Stránka 1 Toto je dynamicky generovaná stránka x xxxx xx. zpracování požadavku/ odeslání odpovědi generátor HTML stránek

Více

Skriptovací jazyky. Obsah

Skriptovací jazyky. Obsah Skriptovací jazyky doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Obsah Co je to skriptovací jazyk? Výhody a nevýhody

Více

Instalace a konfigurace web serveru. WA1 Martin Klíma

Instalace a konfigurace web serveru. WA1 Martin Klíma Instalace a konfigurace web serveru WA1 Martin Klíma Instalace a konfigurace Apache 1. Instalace stáhnout z http://httpd.apache.org/ nebo nějaký balíček předkonfigurovaného apache, např. WinLamp http://sourceforge.net/projects/winlamp/

Více

Stručný návod k programu Octave

Stručný návod k programu Octave Stručný návod k programu Octave Octave je interaktivní program vhodný pro technické výpočty. Je nápadně podobný programu MATLAB, na rozdíl od něho je zcela zadarmo. Jeho domovská vebová stránka je http://www.octave.org/,

Více

Sada 1 - Základy programování

Sada 1 - Základy programování S třední škola stavební Jihlava Sada 1 - Základy programování 04. Datové typy, operace, logické operátory Digitální učební materiál projektu: SŠS Jihlava šablony registrační číslo projektu:cz.1.09/1.5.00/34.0284

Více

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

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku Znaky - standardní typ char var Z, W: char; - znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku - v TP (často i jinde) se používá kódová

Více

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

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: vzdělávací

Více

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání Čtvrtek 3. listopadu Makra v Excelu Obecná definice makra: Podle definice je makro strukturovanou definicí jedné nebo několika akcí, které chceme, aby MS Excel vykonal jako odezvu na nějakou námi definovanou

Více

language="javascript">... </script>.

language=javascript>... </script>. WWW (World Wide Web) je dnes společně s elektronickou poštou nejvyužívanější službou internetu. URL (Uniform Resource Locator) slouží ke kompletní adresaci informace na internetu. Udává jak protokol, který

Více

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

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; } Pole Kdybychom v jazyce C++chtěli načíst větší počet čísel nebo znaků a všechny bylo by nutné všechny tyto hodnoty nadále uchovávat v paměti počítače, tak by bylo potřeba v paměti počítače alokovat stejný

Více

Software602 Form Designer

Software602 Form Designer Software602 Form Designer Javascriptový vyhodnocovací mechanismus výrazů Aktualizováno: 17. 3. 2017 Software602 a.s. Hornokrčská 15 140 00 Praha 4 tel: 222 011 602 web: www.602.cz e-mail: info@602.cz ID

Více

Souhrn Apendixu A doporučení VHDL

Souhrn Apendixu A doporučení VHDL Fakulta elektrotechniky a informatiky Univerzita Pardubice Souhrn Apendixu A doporučení VHDL Práce ke zkoušce z předmětu Programovatelné logické obvody Jméno: Jiří Paar Datum: 17. 2. 2010 Poznámka k jazyku

Více