Rechercher une fonction PHP

Syntaxe

Vous pouvez définir une constante en utilisant la fonction define() ou en utilisant le mot-clé const en dehors d'une définition de classe à partir de PHP 5.3.0. Tant que define() permet de définir une constante pour une expression arbitraire, le mot-clé const a des restrictions comme indiqué dans le paragraphe suivant. Une fois qu'une constante est définie, elle ne peut jamais être modifiée, ou détruite.

Quand vous utilisez des mots-clés const, seuls les types de données scalaires (boolean, integer, float et string) peuvent être placés dans une constante pour les versions avant PHP 5.6. Avec PHP 5.6 et suivants, il est possible de définir une constante comme une expression scalaire, il est également possible de définir une constante de type tableau. Il est possible de définir des constantes en tant que resource, mais cet usage est déconseillé, car il peut mener à des résultats inattendus.

Vous pouvez accéder à la valeur d'une constante en spécifiant simplement son nom. Contrairement aux variables, vous ne devez PAS préfixer le nom de la constante avec $. Vous pouvez aussi utiliser la fonction constant(), pour lire dynamiquement la valeur d'une constante, dont vous obtenez le nom dynamiquement (retour de fonction, par exemple). Utilisez la fonction get_defined_constants() pour connaître la liste de toutes les constantes définies.

Note: Les constantes et les variables globales utilisent deux espaces de noms différents. Ce qui implique que TRUE et $TRUE sont généralement différents (en tous cas, ils peuvent avoir des valeurs différentes).

Si vous utilisez une constante non définie, PHP considère que vous souhaitez uniquement le nom de la constante elle-même, comme si vous l'appeliez comme étant une chaîne de caractères (CONSTANT vs "CONSTANT"). Cette solution de repli est déprécié depuis PHP 7.2.0, et une erreur de niveau E_WARNING sera émise lorsque ce cas se produit (précedemment, une erreur de niveau E_NOTICE était émise à la place.) Lisez également l'entrée du manuel qui explique pourquoi $foo[bar] est faux (tant que vous ne définissez pas bar comme étant une constante). Ceci ne s'applique pas pour les constantes (fully) qualified, ce qui déclencherait une erreur fatale si ce n'est pas défini. Si vous voulez simplement vérifier qu'une constante est définie, utilisez la fonction defined().

Il y a des différences entre les constantes et les variables :

  • Les constantes ne commencent pas par le signe ($).
  • Avant PHP 5.3, les constantes ne pouvaient être définies qu'en utilisant la fonction define(), pas par simple assignement.
  • Les constantes sont définies et accessibles à tout endroit du code, globalement.
  • Les constantes ne peuvent pas être redéfinies ou indéfinies une fois qu'elles ont été définies.
  • Les constantes ne peuvent contenir que des scalaires. Depuis PHP 5.6, il est possible de définir des constantes de tableaux en utilisant le mot clé const et, depuis PHP 7, les constantes de tableaux peuvent aussi être définies en utilisant define(). Vous pouvez utiliser des tableaux dans les expressions scalaires des constantes (par exemple, const FOO = array(1,2,3)[0];), mais le résultat final doit être une valeur scalaire de type autorisé.

Exemple #1 Définir une constante

<?php
  define
("CONSTANTE""Bonjour le monde.");
  echo 
CONSTANTE// affiche "Bonjour le monde."
  
echo Constante// affiche "Constante" et une notice.
?>

Exemple #2 Définir des constantes en utilisant le mot-clé const

<?php
// Fonctionne depuis PHP 5.3.0
const CONSTANT 'Bonjour le monde !';

echo 
CONSTANT;

// Fonctionne depuis PHP 5.6.0
const ANOTHER_CONST CONSTANT.'; Aurevoir le monde !';
echo 
ANOTHER_CONST;

const 
ANIMALS = array('chien''chat''oiseaux');
echo 
ANIMALS[1]; // affiche "chat"

// Fonctione depuis PHP 7
define('ANIMALS', array(
    
'chien',
    
'chat',
    
'oiseaux'
));
echo 
ANIMALS[1]; // affiche "chat"
?>

Note:

Contrairement aux constantes définies en utilisant l'instruction define(), les constantes définies en utilisant le mot-clé const doivent être déclarées au plus haut niveau du contexte, car elles seront définies au moment de la compilation. Cela signifie qu'elles ne peuvent être déclarées à l'intérieur de fonctions, boucles, instructions if ou blocs try/catch.

Note:

Les constantes définies en utilisant le mot clé const sont toujours sensible à la casse, alors que les constantes définies avec la fonction define() ne sont pas sensible à la casse.

Voir aussi les constantes de classe.

Rechercher une fonction PHP

Version en cache

01/11/2024 04:44:07 Cette version de la page est en cache (à la date du 01/11/2024 04:44:07) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-language.constants.syntax.html/.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut