Ahoj světe: syntaxe a standardy
Jste zde
Naprosté základy syntaxe PHP a také souvisejících standardů Drupalu si vysvětlíme na notoricky známém příkladu „Ahoj Světe!“.
Pokud chceme tuto větu vypsat pomocí PHP, bude kód vypadat následovně:
<?php // My first PHP example print 'Ahoj Světe!'; ?>
Pro přehlednost (kvůli zvýraznění syntaxe) bude lepší, když si příklad nejprve napíšete do editoru. Nyní si vysvětlíme jednotlivé části kódu:
Oddělení kódu
PHP kód je třeba začít a uzavřít sérií značek. Nebudeme se zde zdržovat výkladem různých variant, protože podle standardů Drupalu se používá:
- počáteční tag:
<?php
- koncový tag:
?>
Odbočka: použití PHP kódu v Drupalu
V bloku Execute PHP, který poskytuje modul Devel, se ovšem počáteční a koncový tag nepoužívá (modul Devel už totiž automaticky „počítá“ s tím, že budete vkládat PHP kód). Pokud byste počáteční nebo koncový tag použili, Drupal oznámí chybu.
PHP kód lze v Drupalu použít na různých místech a různým způsobem. Vždy je třeba zajímat se o to, zda máte použít oddělovací tagy, nebo nikoliv. Jestliže vkládáte kód do textových oken přímo přes rozhraní Drupalu, v nápovědě pod textovým oknem je obvykle uvedeno, zda máte oddělovací tagy použít, či nikoliv. (Je také důležité, aby v okně nebyl aktivovaný WYSIWYG editor).
Až se budete učit programovat moduly a témata, dozvíte se také, že podle standardů Drupalu se koncový tag nepoužívá na konci souborů v modulech, ani na konci souboru template.php v tématech vzhledu.
Oddělení příkazů
Jednotlivé příkazy se v PHP oddělují středníkem: ;
. I když středníky slouží pro „oddělení“ příkazů, nikoliv jejich ukončení, je dobrým zvykem středník psát i v případě, že se jedná o jeden příkaz (je to opět součástí standardů Drupalu).
Komentáře
Komentáře se uživateli nikde nezobrazují (neinterpretují) a neovlivňují fungování kódu. Slouží nejčastěji jako poznámky programátora pro snadnější porozumění kódu a chování aplikace.
Na našem příkladu vidíte tzv. jednořádkový komentář, který začíná dvěma lomítky: //
. Víceřádkové komentáře se zapisují mezi párové značky /*
a */
. Pro více informací doporučujeme přečíst si pravidla pro psaní komentářů v Drupalu (anglicky). Podle standardů Drupalu se komentáře píší vždy na samostatný řádek před kód, ke kterému se vztahují.
Pro amatéra je dobrým zvykem a pro profesionála nutností:
- průběžně psát do kódu komentáře, které usnadní orientaci a pochopení nejen autorovi kódu;
- psát komentáře v angličtině, už kvůli komunikaci s mezinárodní Drupal komunitou.
Práce s řetezci
Text Ahoj světe
je v terminologii PHP řetězec, což je jeden z datových typů. Aby bylo zřejmé, že se jedná o řetězec a ne například o funkci, ohraničujeme jej apostrofy.
Řetězec je možné ohraničit také uvozovkami, příp. méně používaqnou Here-doc syntaxí.
Příkazy print a echo
Příkaz print
slouží k vypsání řetezce uživateli. Téměř stejně funguje příkaz echo
, který sice můžete bez problémů používat, ale častěji se (nejen) v Drupalu setkáte s příkazem print
, který se používá i v jiných programovacích jazycích.
---
Nyní se vraťme k našemu příkladu. Zkopírujte příklad „Ahoj světe“, který jste si napsali, bez počátečního a koncového tagu, a vložte ho do bloku Execute PHP.
Klikněte na tlačítko Execute.
Výsledek Ahoj Světe!
se zobrazí v části, kde Drupal běžně zobrazuje uživatelům zprávy a nápovědu.
Nyní pozměňte kód tak, aby obsahoval dva příkazy:
<?php // Example with 2 rows print 'Ahoj'; print 'Světe!'; ?>
Výsledkem je vypsání textu: AhojSvěte!
(bez mezery).
Všimněte si, že v PHP není důležité, že jste každý příkaz napsali na samostatný řádek - vypíšou se bezprostředně za sebou. Odřádkování příkazů má význam pro přehlednost kódu, ale nemá vliv na jeho funkčnost. S možnostmi, jak formátovat text, se seznámíte později.