Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP
2
PHP PHP (Hypertext Preprocessor) je skriptovací jazyk sloužící převážně k tvorbě dynamických webových stránek. Poslení produkční verze je verze 5. Syntaxe vypujčená z C, Javy a Perlu. Automatická deklarace proměnných při prvním použití (8 typů – boolean, integer, float, string, array, object, resource, NULL ). Široká řada knihoven funkcí pro práci s řetězci, databázem, grafikou, matematickými funcemi, atd. Charakteristika –nekomerční produkt, open source –podobný princip jako u ASP –vkládání kódu do HTML –nezávislost na platformě –nezávislost na webovém serveru
3
Vývoj PHP 1994 - PHP/FI (Personal Home Page Tools/Forms Interpreter) autorem je Rasmus Lerdorf, základ perl 1997 - PHP/FI 2.0 druhá implementace v C, přístup k databázím, nainstalováno na 1% serverů 1998 - PHP 3.0 ( PHP: Hypertext Preprocessor) kompletně přepracovaná nová verze autory Andi Gutmans, Rasmus Lerdorf, Zeev Suraski, podpora objektů, podpora mnoha databází, nové knihovny 1999 - PHP 4.0 (Zend - ZEev aNDi) nový engine Zend (Zeev aNDi), HTTP session, celkové rozšíření jazyka 2004 - PHP 5.0 nový engine Zend II (nový objektový model), podpora XML (DOM), SimpleXML extension, SOAP extension, podpora MySQL 4.1, stream a socket
4
Oblíbenost PHP
5
Základy jazyka - proměnné Proměnné –nemusí se deklarovat –značí se symbolem $ a pak písmeno (A-Za-z) nebo podtržítko (_) Nepřímé odkazy na proměnné Nepřímé odkazy je skriptovací Správa proměnných –isset() – vrací true, pokud byla proměnná v prostředí deklarována –unset() – ruší deklaraci proměnné (uvolňuje paměť) –empty() – vrací true, pokud proměnná nebyla deklarována, nebo její hodnota se rovná false $jmeno = ‘Lukas’; $$jmeno = ‘Cegan’; echo $Lukas; //Cegan if (isset($jmeno)) { echo $jmeno; }
6
Základy jazyka – datové typy Superglobální proměnné –$_GET[] – proměnné z url –$_POST[] – proměnné z těla http zprávy –$_COOKIE[] – cookie soubory od klienta –$_ENV[] – proměnné proměnného prostředí –$_SERVER[] – proměnné webového serveru Datové typy –Celá čísla, reální čísla, řetězce, logické hodnoty, prázdné hodnoty, pole, prostředky echo $_ENV; $cislo = 10; //cele cislo $realne = 10.5; //realne cislo $retezec = “text”; //retezec $pravda = false; //logicka hodnota $hodnota = NULL; //prazdna hodnota $pole = array(1,2,3) //pole
7
Základy jazyka - operátory Binární operátory +, -, *, /, %,. Operátory přiřazení =, +=, -=, *=, /=, %=, ^=,.=, &=, |=, >= Operátory porovnání ==, !=, >, =, <=, ===, !== Logické operátory &&, ||, xor Bitové operátory &, |, ^ Operátory negace !, ~ Inkrementační/dekrementační operátory ++, --
8
Základy jazyka – řídící struktury Větvení (if, switch) Cykly (while, do while, for) Zahrnování kódu (include, require, eval) if (true) { echo ‘true’; } else { echo ‘false’; } $i = 10; while ($i>0) { echo --$i; } for ($i=0; $i<10; $i++) { echo $i; } include “muj_soubor.php”; switch ($hodnota) { case 1: echo ‘jedna’; break; case 2: echo ‘dva’; break; default: echo ‘nenalezeno’; break; }
9
Základy jazyka – funkce Syntaxe function název_funkce (argument1,…) { blok příkazů return; } Kontext – proměnné použité ve funkci jsou vně funkce nedostupné. Pokud chceme, aby byla proměnná dostupná i vně, je potřeba využít globální pole ($_GLOBALS[]), nebo klíčové slovo global. Návratová hodnota – návrat výsledku funkce zajistíme příkazem return, pro návrat adresy v paměti, kde je proměnná uložená je nutné při definici názvu funkce začínat znakem & (návrat odkazem). Deklarace argumentů funkce –Předávané hodnotou – function($x, $y) {… –Předávané odkazem – function(&$x) {… –Implicitní argumenty – function($x, $y = 1) {… Statické proměnné – proměnné, jenž zůstávají v platnosti mezi jednotlivými voláními funkce. Deklarace prostřednictví static. function soucet ($x, $y) { return $x+$y; }
10
OOP v PHP Deklarace třídy Deklaraci třídy (šablony objektu) provádíme prostřednictvím klíčového slova class, následuje název třídy a ve složených závarkách uvádíme seznam vlastností a metod. Tvorba objektů Instance objektů vytváříme pomocí klíčového slova new. Construktor, Destruktor Při vytvoření instance třídy je alokován v paměti prostor, dojde k vytvoření kopie všech vlastností třídy a je vykonán konstruktor (je-li definován). Destruktor je naopak vykonán v okamžiku kdy je objekt odebrán z paměti. $instance = New MojeTrida(); class MojeTrida { //seznam vlastnost function __construct() {... } //seznam metod function __destruct() {... }
11
Metody a vlastnosti objektu Metody a vlastnosti objektu jsou dostupné prostřednictvím speciální proměnné $this, která je odkazem na objekt. Za tuto proměnou lze pomocí zápisu „-> název“ přistupovat k vlastnostem i metodám objektu. Základními modifikátory pro přístup k vlastnostem a metodám jsou v PHP: public, protected, private. $this->mojeMetoda(); class MojeTrida { public $v = “Veřejný člen”; protected $c = “Chráněný člen”; private $s = “Soukromý člen”; public function vMetoda() {... } protected function cMetoda() {... } private function sMetoda() {... }
12
Statické metody a vlastnosti Statické metody a vlastnosti nepatří instancím, ale třídám. Deklarují se pomocí klíčového slova static. Dostupné jsou pomocí zápisu „jméno třídy::název vlastnosti/metody“. Uvnitř třídy lze použít identifikátor self. class MojeTrida { static $statickaVlastnost = 0; static function sV1() { self::sV2; } static function sV2() { echo “Statická metoda”; } MojeTrida::$statickaVlastnost++; MojeTrida::$sV1();
13
Konstanty třídy Konstanty lze ve třídě definovat pomocí klíčového slova const. Názvy konstant se píši velkými písmeny. Práce s konstatntami je stejná jako s statickými vlastnostmi, nenáleží třídě, ale instanci. Konstanty nelze měnit ani odstranit. class MojeTrida { const BARVA = “modrá”; const CISLO = 1; static function tisk() { echo self::BARVA; } echo MojeTrida::CISLO;
14
Autoload tříd Funkce __autoload() zahrnuje do kódu automatickým způsobem třídy. Aplikace může obsahovat pouze jeden výskyt této funkce. MojeTrida.php autoload.php index.php class MojeTrida { const CISLO = 1; static function tisk() { echo self::CISLO; } function __autoload ($trida) { require_once (“/class/”.$trida.“.php”); } require_once “autoload.php”; MojeTrida::tisk();
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.