constant

constant($nazev)

Vrátí hodnotu konstanty, jejíž název je uložený v textu. Hodí se, když název vzniká až za běhu skriptu.

Parametry

  • $nazev – název konstanty, u konstanty třídy ve tvaru „Trida::KONSTANTA“.

Příklady

define("GARTH_BARVA_POZADI", "#fff");
$nazev = "GARTH_BARVA_POZADI";
echo constant($nazev); // #fff
// konstanta třídy
echo constant("DateTime::ATOM"); // Y-m-d\TH:i:sP
// konstanta PHP
echo constant("E_WARNING"); // 2
// název složený za běhu
define("GARTH_DPH_ZAKLADNI", 21);
$sazba = "ZAKLADNI";
echo constant("GARTH_DPH_" . $sazba); // 21
// neexistující konstanta: PHP 7 vrátí null a varování (tady potlačené @), PHP 8 vyhodí výjimku Error
var_dump(@constant("NEEXISTUJE")); // NULL
// před čtením ověřit
var_dump(defined("GARTH_DPH_SNIZENA") ? constant("GARTH_DPH_SNIZENA") : 0); // int(0)

Na co si dát pozor

  • Neexistující konstanta znamená v PHP 7 varování a null, od PHP 8.0 výjimku Error. Před čtením ji ověřte přes defined().
  • Název složený ze vstupu od uživatele omezte na povolené hodnoty. Jinak by šlo přečíst libovolnou konstantu, i s přístupovými údaji.
  • Když název znáte předem, pište konstantu přímo, constant() není potřeba.

Příbuzné funkce:
define()
defined()
call_user_func()