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φ define() function, 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 include-ovßn nebo require-ovßn, obsahuje nßzev include-ovanΘho, ne rodiΦovskΘho souboru.

__LINE__

╚φslo °ßdku ve skriptu, kter² je prßv∞ Φten. Pokud je pou╛ita v include-ovanΘm nebo require-ovanΘm souboru, 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.

FALSE

Nepravdivß hodnota.

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 ve funkci ereg().

E_PARSE

Parser se zadßvφl neplatnou syntaxφ skriptu. 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 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() function.

V╣imn∞te si, ╛e toto jsou konstanty, ne cΘΦkovskß makra; konstanty mohou reprezentovat pouze platnß skalßrnφ data. Note that these are constants, not C-style macros; only valid scalar data may be represented by a constant.

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∞!");
?>