defined
PHP Manual
PHP Manual»Fonctions diverses»defined

defined

(PHP 4, PHP 5, PHP 7, PHP 8)

defined — Vérifie si une constante avec le nom donné existe

Description

function defined(string $constant_name): bool

Vérifie si une constante avec le nom constant_name existe.

Cette fonction fonctionne également avec les constantes de classe et les types enum.

Note:

Pour vérifier si une variable existe, utiliser isset() car defined() ne s'applique qu'aux constantes. Pour voir si une fonction existe, utiliser function_exists().

Liste de paramètres

constant_name

Le nom de la constante.

Note:

defined() 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 renseigner sur une constante différente de celle à laquelle le même identifiant nu ferait référence. Pour vérifier si une constante déclarée dans un namespace est définie, le namespace doit faire partie du nom, comme dans defined('My\Namespace\MYCONST') ou defined(__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 true si le nom de la constante fournie par le paramètre constant_name a été définie, false sinon.

Exemples

Exemple #1 Vérifier la présence de constantes avec defined()

<?php
/* Notez que le nom de la constante est entre guillemets. Cet exemple vérifie
 * si la chaîne 'TEST' est le nom de la constante nommée TEST */
if (defined('TEST')) {
    echo TEST;
}


interface bar {
    const test = 'foobar!';
}

class foo {
    const test = 'foobar!';
}

var_dump(defined('bar::test')); // bool(true)
var_dump(defined('foo::test')); // bool(true)

?>

Exemple #2 Vérification des types enum (à partir de PHP 8.1.0)

<?php

enum Suit
{
    case Hearts;
    case Diamonds;
    case Clubs;
    case Spades;
}

var_dump(defined('Suit::Hearts')); // bool(true)
?>

Voir aussi

To Top