Kapitola 8. Konstanty

PHP definuje n∞kolik konstant a poskytuje mechanismus pro definici dal╣φch za b∞hu. Konstanty se hodn∞ podobajφ prom∞nn²m s v²jimkou dvou skuteΦnostφ: konstanty se musφ definovat pomocφ funkce define(), a nemohou pozd∞ji nab²vat jin²ch hodnot.

P°eddefinovanΘ konstanty (dostupnΘ v╛dy) jsou:

__FILE__

Nßzev souboru skriptu, kter² je prßv∞ Φten. Pokud je pou╛ita v souboru, kter² byl vlo╛en pomocφ "include" nebo "require", obsahuje nßzev vlo╛enΘho souboru, nikoli rodiΦovskΘho.

__LINE__

╚φslo °ßdku ve skriptu, kter² je prßv∞ Φten. Pokud je pou╛ita v souboru vlo╛enΘho pomocφ "include" nebo "require", obsahuje pozici v rßmci tohoto souboru.

PHP_VERSION

TextovΘ vyjßd°enφ verze b∞╛φcφho PHP parseru, nap°. '3.0.8-dev'.

PHP_OS

Nßzev operaΦnφho systΘmu, na kterΘm PHP parser b∞╛φ, nap°. 'Linux'.

TRUE

Pravdivß hodnota (logickß jedniΦka).

FALSE

Nepravdivß hodnota (logickß nula).

E_ERROR

OznaΦuje neo╣et°itelnou chybu jinou ne╛ "parse error".

E_WARNING

OznaΦuje stav, kdy PHP vφ, ╛e je n∞co ╣patn∞, ale bude dßl pokraΦovat. Tyto stavy se dajφ o╣et°it v samotnΘm skriptu. P°φkladem by byl neplatn² "regexp" (regulßrnφ v²raz) ve funkci ereg().

E_PARSE

Chyba p°i syntaktickΘ anal²ze skriptu (chybnß syntaxe). O╣et°enφ nenφ mo╛nΘ.

E_NOTICE

Do╣lo k n∞Φemu, co by mohlo b²t chybou. Provßd∞nφ skriptu pokraΦuje. Mezi p°φklady pat°φ textov² index pole neopat°en² uvozovkami nebo prßce s prom∞nnou, kterß je╣t∞ nebyla definovßna.

E_ALL

V╣echny E_* konstanty shrnutΘ do jednΘ. P°i pou╛itφ s funkcφ error_reporting() zp∙sobφ hlß╣enφ ·pln∞ v╣ech problΘmu zaregistrovan²ch PHP.

E_* konstanty se typicky pou╛φvajφ s funkcφ error_reporting() nastavenφ hladiny hlß╣enφ chyb. Viz v╣echny tyto konstanty v O╣et°enφ chyb.

Dal╣φ konstanty m∙╛ete definovat pomocφ funkce define().

V╣imn∞te si, ╛e toto jsou konstanty, ne cΘΦkovskß makra; konstanty mohou reprezentovat pouze platnß skalßrnφ data.

P°φklad 8-1. Definice konstant

<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // vytiskne "Hello world."
?>

P°φklad 8-2. Pou╛itφ __FILE__ a __LINE__

<?php
function report_error($file, $line, $message) {
    echo "Do╣lo k chyb∞ v souboru $file na °ßdku $line: $message.";
}

report_error(__FILE__,__LINE__, "N∞co je ╣patn∞!");
?>