constant
PHP Manual
PHP Manual»Fonctions diverses»constant

constant

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

constant — Retourne la valeur d'une constante

Description

function constant(string $name): mixed

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

Liste de paramètres

name

Le 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') ou constant(__NAMESPACE__ . '\MYCONST'). Le nom étant une simple chaîne de caractères, les alias introduits par les instructions use et le préfixe namespace\ 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.

Valeurs de retour

Retourne la valeur de la constante.

Erreurs / Exceptions

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.

Historique

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é.

Exemples

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)

?>

Voir aussi

To Top