defined

defined($name)

Gibt true zurück, wenn eine Konstante mit dem angegebenen Namen existiert. Der Name wird als Zeichenkette übergeben.

Parameter

  • $name – der Name der Konstante als Zeichenkette, bei einer Klassenkonstante in der Form "ClassName::CONSTANT".

Beispiele

define("GARTH_ENVIRONMENT", "dev");
var_dump(defined("GARTH_ENVIRONMENT")); // bool(true)
var_dump(defined("DOES_NOT_EXIST")); // bool(false)
// PHP-Konstanten
var_dump(defined("PHP_VERSION")); // bool(true)
// eine Klassenkonstante
var_dump(defined("DateTime::ATOM")); // bool(true)
// der Name wird als Zeichenkette übergeben – ohne Anführungszeichen sucht sie eine Konstante, die wie der Wert heißt
var_dump(defined(GARTH_ENVIRONMENT)); // bool(false)
// eine Datei, die nur eingebunden werden darf (index.php ruft vor dem Einbinden define("GARTH_START", true) auf)
if (!defined("GARTH_START")) {
  echo "Direkter Zugriff ist nicht erlaubt."; // Direkter Zugriff ist nicht erlaubt.
}

Worauf Sie achten sollten

  • Übergeben Sie den Namen als Zeichenkette in Anführungszeichen. defined(GARTH_ENVIRONMENT) fragt nach einer Konstante, die wie der Wert "dev" heißt.
  • Der Schutz eingebundener Dateien mit einer Konstante ist nur eine Absicherung. Dateien, die nicht allein laufen sollen, gehören außerhalb des öffentlichen Ordners der Website.
  • Für Variablen verwenden Sie isset(), für Funktionen function_exists().

Verwandte Funktionen:
define()
constant()
function_exists()
get_defined_constants()