Formation PUB010 : PHP, 2025 Notions de programmation appliquées au PHP

14.2 Les constantes


Une constante est un peu comme une variable sauf qu'il faut lui donner une valeur dès sa déclaration et que cette valeur ne peut pas être changée par la suite.

En PHP, il existe deux techniques pour déclarer une constante :

  • à l'aide de const
  • à l'aide de define()

Dans tous les cas, il est d'usage d'utiliser seulement des lettres majuscules dans le nom des constantes.

Si le nom est composé de plusieurs mots, on les séparera par une barre de soulignement.

const

Une constante déclarée avec const est traitée avant l'exécution du code.

Syntaxe PHP

const NOM_CONSTANTE = 'valeur';

Ex :

PHP

const MAX_HISTORY_ITEMS = 20;

Avantage : il est possible d'utiliser const dans une classe.

Inconvénient : const est moins flexible que define() :

  • Il n'est pas possible d'utiliser une variable pour initialiser une constante avec const.
    PHP

    const TYPE_PAR_DEFAUT = $type;   // il faudrait utiliser define() ici

  • Une constante ne peut pas être déclarée dans un if.
    PHP

    if ($env === 'production') {
        const URL = 'https://monsite.com';   // il faudrait utiliser define() ici
    }
    else {
        const URL = 'http://monsite.test';
    }

    PHP

    if (!defined('DEVEL')) {
        const DEVEL = true;
    }

define()

La fonction define() permet de déclarer une constante lors de l'exécution (runtime).

Syntaxe PHP

define('NOM_CONSTANTE', 'valeur');

Ex :

PHP

define('DOSSIER_CIBLE', 'photos');

Avantage : define() est plus flexible que const :

  • La constante peut être déclaré dans un if.
  • La valeur de la constante peut provenir d'une variable.

Inconvénient : puisque define() est une fonction, elle ne peut pas être utilisée directement dans le corps d'une classe.

PHP

class MaClasse {
    define('MA_CONSTANTE', 'localhost');   // il faudrait utiliser const ici
    ...
}

Pour plus d'information

« Les constantes ». PHP. https://www.php.net/manual/fr/language.constants.php

« Les constantes - Syntaxe ». PHP. https://www.php.net/language.constants.syntax

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre