Příkazy, klíčová slova a funkce v PHP

Každý PHP script se skládá z příkazů a funkcí, dohromady se tomu říká konstrukty. Když se script zpracovává, tak se tyto výrazy jazyka sledují (tomuto procesu se říká tokenizace) a ná základě klíčových slov se interpret rozhoduje, jak se má procesor zachovat.

Příkazy

Příkazy (v angličtině se jim říká keywords) jsou již předprogramované části jazyka, jsou rezervované přímo pro svůj účel, můžeme je ihned použít za libovolné situace (nevyžadují další speciální knihovny nebo instalaci) a skládají se z nich základy všech scriptů.

Například výpis řetězce do HTML kódu:

echo 'Echo je příkaz jazyka na výpis obsahu';

U příkazů je důležité si uvědomit, že nevrací žádnou hodnotu a nelze je tedy použít jako proměnnou. Příkazy lze také poznat podle toho, že neobsahují závorku.

Příklady:

echo 'Ahoj světe!';
echo ('Ahoj světe!');

Pokud obsah příkazu obalím závorkami, tak se chování nijak nezmění a bude na něj nahlíženo jako na výraz. Je to to samé, jako kdybychom v matematice zapsali:

5 + 3

// nebo:

(5 + 3)

Technicky vzato v tom rozdíl je, ale v praxi se nic nemění.

Funkce

Kdyby existovaly jen příkazy, tak by to byla celkem nuda. Funkce jsou souhrnem více příkazů.

Často chceme stejný kód provádět na více místech opakovaně. V takovém případě by bylo neustálé opisování příliš náročné a mohlo by vést k chybám, proto takový kód obalíme do funkce, kterou pojmenujeme a následně ji jen voláme podle názvu.

Při volání funkce ji předáme parametry jako proměnné, ona provede zadaný kód a vrátí výsledek, který můžeme dále použít.

$text = 'PHP je můj oblíbený jazyk!';
$delka = strlen($text);

echo 'Text "' . $text . '" je dlouhý ' . $delka . ' znaků.';

PHP má mnoho funkcí přímo předdefinovaných (kompletní seznam je v dokumentaci), často je ovšem výhodné si definovat vlastní:

function mojeFunkce($x, $y) {
   $z = $x + $y;    // sečte vstupní parametry a uloží do proměnné
   return $z;       // vrátí proměnnou $z
}

echo mojeFunkce(5, 3); // vypíše číslo 8, protože čísla zpracovala funkce

Proměnné ve funkcích

V rámci funkcí se používají tzv. lokální proměnné, to znamená, že mohou být použity jen uvnitř funkce a nelze s nimi pracovat (ani definovat) mimo funkci. Počáteční hodnoty získají z parametrů funkce přímo v její definici.

Příklad:

$z = 5;

function prvniFunkce($x, $y) {
   return $x - $y;  // toto by vrátilo rozdíl čísel
}

function druhaFunkce() {
   return $z;       // toto vrátí chybu, protože proměnná $z
                    // není uvnitř funkce definována
}

Někdy se hodí některý z parametrů nastavit jako nepovinný, to se udělá tak, že se definuje náhradní (výchozí) hodnota:

echo prictiCislo(5); // vrátí 6
echo prictiCislo(5, 7); // vrátí 12

function prictiCislo($x, $y = 1) {
   return $x + $y;
}

Funkce prictiCislo() přičítá k proměnné $x hodnotu z proměnné $y. Pokud není proměnná $y definována (uvedena jako parametr při volání funkce), bude použita její výchozí hodnota zapsaná v definici funkce. Druhý parametr funkce (proměnná $y) je tedy nepovinný.

Každá funkce může mít jen jeden výstup (jeden return), pokud ve funkci uvedete více výstupů, tak bude vrácen ten, který je uveden jako první. Pokud chcete vrátit více hodnot, musíte použít pole.

V PHP (na rozdíl od jiných jazyků) nemusíme uvádět return vůbec, v takovém případě pak funkce na libovolný vstup nevrací nic (void). Takové funkce slouží většinou k ukládání dat nebo výstupu do zdrojového kódu. Všeobecně se ale doporučuje vždy nějakou hodnotu vracet, minimálně potvrzení o tom, že vše proběhlo v pořádku.

Sponzorované odkazy
Pomohl Vám tento článek?

Abecední seznam všech rezervovaných klíčových slov pro PHP:

  • __halt_compiler
  • abstract
  • and
  • array
  • as
  • break
  • callable
  • case
  • catch
  • class
  • clone
  • const
  • continue
  • declare
  • default
  • die
  • do
  • echo
  • else
  • elseif
  • empty
  • enddeclare
  • endfor
  • endforeach
  • endif
  • endswitch
  • endwhile
  • eval
  • exit
  • extends
  • final
  • for
  • foreach
  • function
  • global
  • goto
  • if
  • implements
  • include
  • include_once
  • instanceof
  • insteadof
  • interface
  • isset
  • list
  • namespace
  • new
  • or
  • print
  • private
  • protected
  • public
  • require
  • require_once
  • return
  • static
  • switch
  • throw
  • trait
  • try
  • unset
  • use
  • var
  • while
  • xor

Seznam připravených konstant:

  • __CLASS__ ~ název aktuální třídy
  • __DIR__ ~ cesta k aktuálnímu adresáři
  • __FILE__ ~ cesta k aktuálnímu souboru
  • __FUNCTION__ ~ název aktuální funkce
  • __LINE__ ~ číslo aktuálního řádku
  • __METHOD__ ~ název aktuální metody
  • __NAMESPACE__ ~ namespace aktuální třídy
  • __TRAIT__ ~ název aktuální traity