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