Maison >développement back-end >tutoriel php >Explication détaillée des constantes PHP : la différence entre définir et const

Explication détaillée des constantes PHP : la différence entre définir et const

零到壹度
零到壹度original
2018-04-10 16:50:261566parcourir

Le contenu de cet article est de partager avec vous une explication détaillée des constantes PHP : la différence entre définir et const, qui a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer

. Une constante est un simple symbole identifiant. Cette valeur ne peut pas être modifiée lors de l'exécution du script (sauf pour les constantes dites magiques, qui ne sont pas des constantes). Les constantes sont sensibles à la casse par défaut. Normalement, les identifiants constants sont toujours en majuscules.

Vous pouvez utiliser la fonction define() pour définir des constantes. Après php5.3.0, vous pouvez utiliser le mot-clé const pour définir des constantes en dehors de la définition de classe. Dans les versions précédentes, le mot-clé const ne pouvait être utilisé que dans les classes. Une fois qu'une constante est définie, elle ne peut pas être modifiée ou indéfinie.

Les constantes ne peuvent contenir que des données scalaires (booléennes, entières, flottantes et chaînes). Les constantes de ressources peuvent être définies, mais doivent être évitées car elles peuvent entraîner des résultats imprévisibles.

Vous pouvez obtenir la valeur d'une constante simplement en précisant son nom. Contrairement aux variables, vous ne devez pas mettre le signe $ devant une constante. Si le nom de la constante est dynamique, vous pouvez également utiliser la fonction constant() pour obtenir la valeur de la constante. Utilisez get_defined_contstants() pour obtenir une liste de toutes les constantes définies.

Les différences entre constantes et variables sont les suivantes :

1, Il n'y a pas de signe dollar ($) devant la constante

2, Les constantes ne peuvent être définies que via la fonction definition(), mais pas via les instructions d'affectation

3, Les constantes peuvent être définies et accessibles n'importe où, quelle que soit la portée de la variable

Une fois qu'une constante est définie. définie, elle ne peut pas être redéfinie ou indéfinie

5. La valeur de constante ne peut être qu'un scalaire

<?php
//
 以下代码在 PHP 5.3.0 后可以正常工作
const USERNAME = &#39;zhouguowei&#39;;
echo USERNAME;
echo constant
("USERNAME");
 
const ZHOUUSERNAME = &#39;zhouguowei2222222222&#39;;
 
define (&#39;MYUSERNAME&#39;,&#39;zhouguowei1111111&#39;);
echo "<pre class="brush:php;toolbar:false">";
print_r( get_defined_constants());  
?>

Q : Lors de la définition de constantes en php, quelle est la différence entre const et définir ?

Réponse : L'utilisation de const rend le code simple et facile à lire. const lui-même est une structure de langage et définir est une fonction. De plus, const est beaucoup plus rapide que défini lors de la compilation.

1. const est utilisé pour la définition des variables membres de la classe. Une fois définie, elle ne peut pas être modifiée. Define ne peut pas être utilisé pour définir des variables membres de classe, mais peut être utilisé pour des constantes globales.

2. Const peut être utilisé dans les classes, il est impossible de définir

Const. Les constantes ne peuvent pas être définies dans les instructions conditionnelles

<?php
if(...){
const FOO = &#39;BAR&#39;;    //无效的invalid
}
if(...) {
define (&#39;FOO&#39;, &#39;BAR&#39;); //有效的valid
}
?>

4 const utilise des noms de constantes ordinaires, la définition peut utiliser des expressions comme noms

<?php
const FOO = &#39;BAR&#39;;
for($i= 0; $i< 32; ++$i) {
define(&#39;BIT_&#39; . $i, 1 << $i);
}
?>

5. const ne peut accepter que les scalaires statiques, tandis que définir peut prendre n'importe quelle expression

<?php
constBIT_5 = 1 << 5;    //无效的invalid
define(&#39;BIT_5&#39;, 1 << 5); //有效的valid
?>

6. sensible à la casse, et définir peut spécifier s'il est sensible à la casse via le troisième paramètre (true indique une insensibilité à la casse).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn