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.
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.
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:
Před poslední instrukcí nemusí středník být. Pište ho tam ale, protože se Vám bude stávat, že připíšete nějakou instrukci ještě níže a kód Vám přestane fungovat.
Na rozdíl od některých jiných jazyků jsou konce řádků pro PHP nepodstatné. To můžete použít pro formátování kódu tak, abyste se v něm vyznali. Nepodstatné jsou rovněž mezery a tabelátory. Následující kód je tedy totožný s předchozím:
<?
echo "První
řádek"; echo "Druhý
řádek"; ?>
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.