Forum und email
Konstanty

Kapitola 13. 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 13-1. Definice konstant

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

Příklad 13-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ě!");
?>