Kurz PHP (2.)

ZaΦlen∞nφ PHP do strßnek

Jak jste si ji₧ v p°edchozφm dφle mohli vÜimnout, ukßzali jsme si jednoduch² p°φklad, kter² nßm vypsal informace o nastavenφ PHP. Ji₧ v tomto p°φklad∞ si m∙₧ete vÜimnout znaΦek <? a ?>. Tyto znaΦky vymezujφ prostor, ve kterΘm se bude provßd∞t PHP k≤d. JednoduÜe °eΦeno (pro laiky), m∙₧ete to p°irovnat nap°φklad tagu <body></body>, do kterΘho vepisujeme veÜker² HTML k≤d. Nynφ si ukß₧eme vÜechny zp∙soby, jak zaΦlenit PHP k≤d do strßnek.

  1. <? echo "Zßkladnφ zp∙sob vklßdßnφ PHP tag∙."; ?> - Standardnφ zp∙sob, kter² se nejΦast∞ji pou₧φvß. Pro tento zp∙sob je pot°eba mφt nastavenu v konfiguraΦnφm souboru PHP (php.ini) volbu short_open_tag na hodnotu On - standardn∞ je tak nastaveno.

  2. <?php echo "DalÜφ zp∙sob vklßdßnφ PHP do strßnek."; ?> - DalÜφ zp∙sob urΦen² p°evß₧n∞ pro generovßnφ XML dokument∙.

  3. <script language="php">
           echo "DalÜφ zp∙sob pro editory, kterΘ nepodporujφ p°edchozφ zßpisy.";
    </script>
    - ZaΦlen∞nφ PHP skript∙ do editor∙, kterΘ nepodporujφ p°edchozφ zp∙soby zßpisu.

  4. <% echo "ASP tagy."; %> - Tento zp∙sob zßpisu je povolen pouze tehdy, pokud mßte v konfiguraΦnφm souboru PHP (php.ini) nastavenu volbu asp_tags na hodnotu On.

Nezapome≥te, ₧e vÜechny skripty musφ mφt koncovku .php, aby je mohl webov² server "vykonat"!

Jak jste si ji₧ mohli vÜimnout v PHP se odd∞lujφ jednotlivΘ p°φkazy st°ednφkem ( ; ) stejn∞ jako nap°φklad v Perlu. Chceme-li napsat dva p°φkazy m∙₧eme pou₧φt dvou variant:


<? echo "Jeden p°φkaz" ?>
<? echo " Druh² p°φkaz" ?>

nebo


<? 
   echo "Jeden p°φkaz";
   echo " Druh² p°φkaz";
?>


Co je to prom∞nnß

Op∞t jednoduÜe °eΦeno se jednß o mφsto, kde uchovßvßme hodnoty. S t∞mito hodnotami m∙₧eme nßsledn∞ pracovat. M∙₧eme prom∞nnΘ mezi sebou nßsobit, sΦφtat, spojovat texty atd.

Prom∞nnΘ zapisujeme pomocφ znaku $, za kter²m nßsleduje nßzev prom∞nnΘ.

Nßzev prom∞nnΘ musφ zaΦφnat pφsmenem nebo podtr₧φtkem, za kter²m nßsleduje libovoln² poΦet pφsmen, podtr₧φtek nebo Φφslic. Nßzvy bychom m∞li takΘ psßt bez diakritiky (hßΦk∙ a Φßrek) a v nßzvech nesmφme d∞lat mezery. PHP je takΘ citlivΘ na velikosti pφsmen v nßzvu prom∞nnΘ. Prom∞nnß $Test a prom∞nnß $test jsou dv∞ r∙znΘ prom∞nnΘ. VhodnΘ nßzvy jsou tedy:


<? 
   $_Ahoj = "Vitej...";
   $Cas = "18:12:20";
   $id = 1;
?>

A nevhodn² nßzev prom∞nnΘ:


<? 
   $12letadel = "Vitej...";
?>

Hodnoty prom∞nn²ch m∙₧ou mφt nßsledujφcφ typy:

Na hodnoty prom∞nn²ch se m∙₧eme takΘ odkazovat (prom∞nnß se odkazuje na hodnotu jinΘ prom∞nnΘ).


<? 
   $hodnota = 10;
   $hodnota2 = &$hodnota;
   
   echo $hodnota2;
?>

Ji₧ v p°edchozφch p°φkladech pou₧φvßme p°φkaz (funkci) echo, kterß umo₧≥uje vypsat obsah prom∞nnΘ nebo text, kter² se nachßzφ v zßvorkßch.


String - textov² °et∞zec

Hodnoty zapisujeme do uvozovek nebo apostrof∙. Rozdφl mezi uvozovkou a apostrofem je v tom, ₧e pokud vypφÜeme hodnotu prom∞nnΘ v uvozovkßch, zobrazφ se hodnota prom∞nnΘ, ovÜem pokud pou₧ijeme apostrofy, zobrazφ se nßzev prom∞nnΘ. VÜe si ukß₧eme na p°φklad∞:


<? 
	$nazev = "Nßzev prom∞nnΘ";
	// Dosadφ mφsto $nazev hodnotu tΘto prom∞nnΘ
	echo "Obsah prom∞nnΘ $nazev je $nazev";
	
	// VypφÜe nßzev prom∞nnΘ
	echo 'Obsah prom∞nnΘ $nazev je $nazev';
	
?>

Ji₧ zde najdou uplatn∞nφ tzv. escape sekvence (zp∞tnΘ lomφtko - /), kterΘ umo₧≥ujφ vypsat nßzev prom∞nnΘ a jejφ hodnotu.


<? 
	$nazev = "Petr";
	// Dosadφme zp∞tnΘ lomφtko p°ed nßzev prom∞nnΘ
	echo "Obsah prom∞nnΘ \$nazev je $nazev";
?>

V nßsledujφcφ tabulce naleznete seznam dalÜφch u₧iteΦn²ch escape sekvencφ.

Sekvence V²znam
\n VypφÜe novou °ßdku.
\r V p°ekladu se jednß o "nßvrat vozφku".
\t VypφÜe tabulßtor.
\\ VypφÜe zp∞tnΘ lomφtko.
\$ VypφÜe znak dolaru.
\" VypφÜe znak uvozovky.


Typ integer

Jednß se o celΘ Φφslo nab²vajφcφ hodnot od -2 147 483 648 do +2 147 483 647.


Typ double

Jednß se o Φφslo s desetinnou Φßrkou nab²vajφcφ hodnot p°ibli₧n∞ od -1.8·10308 do +1.8·10308.


Typ boolean

Jednß se o hodnotu True/False (pravda/nepravda). Tento typ m∙₧eme pou₧φt nap°φklad p°i porovnßvßnφ °et∞zc∙, o kterΘm si povφme v dalÜφch dφlech.


Typ array (pole)

Pole je datov² typ, kter² m∙₧e obsahovat n∞kolik hodnot (string, integer, atd.). Tyto hodnoty jsou potΘ dostupnΘ pomocφ klφΦe (indexu), kter² se uvßdφ do hranat²ch zßvorek.

JednoduchΘ pole m∙₧eme vytvo°it nßsledovn∞:


<? 
	$pole[] = "PHP";
	$pole[] = "je";	
	$pole[] = "skv∞lΘ!";	
?>

Pokud nebude urΦeno jinak, jsou vÜechny klφΦe Φφslovßny od nuly. To znamenß, ₧e k prvnφ hodnot∞ (hodnot∞ PHP) se dostaneme pomocφ $pole[0].


<? 
	$pole[] = "PHP";
	$pole[] = "je";	
	$pole[] = "skv∞lΘ!";
	
	echo $pole[0];
?>

Jako klφΦ m∙₧eme pou₧φt nejen Φφslo, ale takΘ textov² °et∞zec. Zφskßme tak asociativnφ pole.


<? 
	$pole["nazev"] = "PHP";
	$pole["popis"] = " je skv∞l² programovacφ jazyk !";
?>

Pole m∙₧eme inicializovat takΘ pomocφ nßsledujφcφ funkce:


<? 
	$pole = Array("PHP", " je skv∞l² programovacφ jazyk !");
	
	echo $pole[0];
?>

Nebo m∙₧eme vytvo°it asociativnφ pole (tento zp∙sob m∙₧eme takΘ pou₧φt p°i urΦenφ vlastnφho nßzvu klφΦe):


<? 
 $pole = Array("nazev" =>"PHP", 
 	       "popis" => " je skv∞l² programovacφ jazyk !");
 echo $pole["nazev"];
?>

Pokud budeme chtφt zjistit poΦet prvk∙ pole, m∙₧eme vyu₧φt funkci Count(<<nazev pole>>). Pomocφ funkce Reset(<<nazev pole>>) p°esuneme ukazatel na prvnφ prvek pole. O pokroΦilejÜφ prßci s poli si povφme v dalÜφch dφlech.


P°etypovßnφ prom∞nnΘ

N∞kdy se nßm m∙₧e stßt, ₧e pot°ebujeme zm∞nit typ prom∞nnΘ, nap°φklad string na typ integer. M∙₧eme tedy pou₧φt nßsledujφcφ k≤d:


<? 
 $hodnota = 10;
 $hodnota_string = (string) $hodnota;
?>

Nebo m∙₧ete vyu₧φt funkce SetTyp(<<nßzev prom∞nnΘ>>,"<<typ>>"). Jako typ m∙₧eme pou₧φt string, int (integer), bool (boolean), float (double), array, object. Hodnoty v zßvorkßch urΦujφ nßzvy ve starÜφ verzi PHP (< 4.2.0).


Komentß°e

V dob∞, kdy pφÜeme n∞jak² skript, m∙₧e nßm vÜe b²t jasnΘ (chßpeme jeho funkΦnost). ProblΘm nastßvß v p°φpad∞, ₧e mßme ve skriptu po urΦitΘ dob∞ provΘst ·pravy. Pomocφ komentß°∙ si m∙₧eme u vÜech funkcφ a p°φkaz∙ napsat poznßmky, kterΘ nßm v budoucnu princip skriptu objasnφ. Na v²b∞r mßme ze dvou druh∙ komentß°∙.

  1. // - tento zp∙sob psanφ komentß°e pou₧ijeme pokud hodlßme napsat pouze kratÜφ poznßmku.
    
    <? 
       // Jednoduchß poznßmka na jeden °ßdek.
       $jmeno = "Petr";
       echo $jmeno;
    ?>
    
    
  2. /* */ - tento komentß° pou₧ijeme pokud chceme napsat poznßmku na vφce °ßdk∙.
    
    <? 
       /*
       	Nßzev:  Komentß° na vφce °ßdk∙
    	Autor:  Petr Rympler
    	E-mail: peta@webguru.cz
    	Rok:    2002
       */
       $jmeno = "Petr";
       echo $jmeno;
    ?>
    
    

Pro tento dφl to bude vÜe. V p°φÜtφm dφle si povφme n∞co o operßtorech a °φdφcφch strukturßch.

Petr Rympler