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 | czytane 169904×
RELATED ARTICLES
KOMENTARZE
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:
-
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ář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.