PHP (4) - Základy syntaxe

V minulém díle našeho seriálu jsme si PHP nainstalovali a nastavili. Dnes se dostaneme v našem povídání o tomto skriptovacím jazyku k základům syntaxe. Uvidíme, jak je kód PHP členěn, jak se v něm trochu vyznat a na co bychom při psaní PHP neměli zapomínat.

31.5.2004 15:00 | Petr Zajíc | přečteno 169629×

Jak vůbec server pozná, že má se souborem zacházet jako s programem v PHP? V zásadě podle přípony souboru, který po něm požadujeme. Jestliže má soubor příponu php, server nám jej nevrátí přímo jako by šlo o HTML, ale nejprve jej zpracuje. Příponu php (také phtml, php3 a některé další) pozná server jako soubor skriptu prostě proto, že to má nastaveno v konfiguraci (viz minulý díl). My budeme používat při ukládání skriptů příponu php, je to nejčastější.

Úplná katastrofa může nastat, když souboru se skriptem php dáme omylem příponu htm nebo html. To jej potom server pošle do prohlížeče bez jakýchkoli úprav a uživatel může vidět zdrojový kód skriptu. To asi není to, co chcete, zejména kdyby skript obsahoval citlivé údaje (třeba, jak se připojit k databázi). Takže, dávejte si na to pozor. Na druhou stranu Vám nic nebrání nazvat si "obyčejné" html soubory tak, aby měly příponu php. Když server zjistí, že v nich není žádný php kód, pošle je prohlížeči tak, jak jsou. A navíc – když do nich později budete chtít nějaký kód přidat, už je nebudete muset přejmenovávat.

Oddělení kódu

Ve skriptu samotném je kód php uzavřen dvojicí značek. Mohou to být:

<? [PHP kód] ?>

To je typický případ.

<?php [PHP kód] ?>

tato sytnaxe je kompatibilní se standardem XML, takže asi syntakticky nejčistší. Bývám ale líný to psát.

<SCRIPT LANGUAGE="php"> php [PHP kód] </SCRIPT>

To je sice asi nejsložitější, ale mělo by to donutit editory typu Microsoft FrontPage, aby kód mezi tagy neformátovaly podle svých představ, takže někdy se může docela hodit to znát.

<% [PHP kód] %>

To je syntaxe známá z jazyka asp (Active server pages) firmy Microsoft. Používat by se to mělo jen v krajních případech, protože to vyžaduje úpravu konfiguračních souborů a je to silně nestandardní.

My budeme v příkladech používat dvojice značek <? a ?>. Dokumentace uvádí, že toto chování musí být implicitně zapnuté v konfiguračním souboru, aby to fungovalo, ale že to je zároveň výchozí nastavení. Mě to však funguje úplně všude.

Oddělení instrukcí

Jednotlivé instrukce se v PHP oddělují středníkem. Takže, následující kód Vám nebude fungovat:

<?
echo "První řádek"
echo "Druhý řádek"
?>

Celé to skončí chybou "Parse Error", protože za prvním řádkem nenásleduje středník. S touto chybou se seznamte – pokud jste předtím neprogamovali v nějakém jazyku, který rovněž používá středníky, asi je budete často zapomínat (jako já). Opravený skript je:

<?
echo "První řádek";
echo
"Druhý řádek";
?>

a ještě poznámky:

<? echo "První řádek"; echo "Druhý řádek"; ?>

Komentáře (ano?)

Komentář je něco, co program při zpracování ignoruje a slouží tedy pouze uživateli. Rozhodně si osvojte zapisování komentářů hned při pasní kódu; bude se Vám to hodit. Patřičně to zdůrazníme v článku věnovaném psaní rozsáhlejších projektů, ale zvykněte si na to už teď. Komentáře mohou být v PHP jednořádkové nebo víceřádkové a používají se na ně znaky "//" (dvě dopředná lomítka), "#" (mřížka) a dvojice "/*" a "*/" (lomítko+hvězdička --- hvězdička+lomítko).

Jednořádkový kometář:

<?
// skript kašle na to, co tady napíšu
?>

nebo

<?
# skriptu je úplně jedno, co tu bude
?>

Víceřádkový komentář

<?
/*
Nevím, jestli to, co napsáno v tomto skriptu bude fungovat.
Ještě se na to budu muset podívat.
*/
?>

Víceřádkovým komentářem můžete zakomentovat celý blok textu velice rychle, a také velice špatně. Pamatujte, že víceřádkové komentáře nelze vnořovat. První sekvence '*/' totiž celý komentář ukončí. Následující kód tedy skončí chybou (je to vidět už z obarvení kódu):

<?
/*
Chci to zakomentovat.
To by přece nemělo vadit.
  /*
  Ale díky "vnořenému" víceřádkovému komentáři
  ... už to vadí
  */
*/
?>

V dalším díle se podíváme na některé příkazy php, které bude lepší se naučit hned a na formátování výsledného kódu, který PHP vrací do prohlížeče.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=176