(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
constant — Retourne la valeur d'une constante
Retourne la valeur de la constante name.
constant() est pratique lorsqu'il faut lire la valeur d'une constante, mais qu'on ne connaît son nom que durant l'exécution du script. Par exemple, ce nom peut être le résultat d'une fonction.
Cette fonction fonctionne également avec les constantes de classe et types enum
nameLe nom de la constante.
Note:
constant() prend le nom comme une simple string et ne le résout pas par rapport au namespace courant : le nom est recherché dans le namespace global, si bien qu'un nom non qualifié peut silencieusement retourner une constante différente de celle à laquelle le même identifiant nu ferait référence. Pour récupérer la valeur d'une constante déclarée dans un namespace, le namespace doit faire partie du nom, comme dans
constant('My\Namespace\MYCONST')ouconstant(__NAMESPACE__ . '\MYCONST'). Le nom étant une simple chaîne de caractères, les alias introduits par les instructionsuseet le préfixenamespace\ne lui sont pas appliqués. Dans une chaîne entre guillemets doubles, les séparateurs de namespace doivent être échappés, comme dans"My\\Namespace\\MYCONST". La partie namespace du nom est insensible à la casse, le nom de la constante ne l'est pas.
Retourne la valeur de la constante.
Si la constante n'est pas définie, une exception Error est levée.
Antérieur à PHP 8.0.0, une erreur de niveau E_WARNING était émise dans ce cas.
| Version | Description |
|---|---|
| 8.0.0 |
Si la constante n'est pas définie, constant() lance
désormais une exception Error ; auparavant une
E_WARNING était émise, et null était retourné.
|
Exemple #1 Utilisation de la fonction constant() avec des constantes
<?php
define("MAXSIZE", 100);
echo MAXSIZE;
echo constant("MAXSIZE"); // identique à la ligne précédente
interface bar {
const test = 'foobar!';
}
class foo {
const test = 'foobar!';
}
$const = 'test';
var_dump(constant('bar::'. $const)); // string(7) "foobar!"
var_dump(constant('foo::'. $const)); // string(7) "foobar!"
?>Exemple #2 Utilisation de la fonction constant() avec des types enum (à partir de PHP 8.1.0)
<?php
enum Suit
{
case Hearts;
case Diamonds;
case Clubs;
case Spades;
}
$case = 'Hearts';
var_dump(constant('Suit::'. $case)); // enum(Suit::Hearts)
?>