Maison >développement back-end >tutoriel php >Explication détaillée des différences d'utilisation entre les constantes PHP définies et const

Explication détaillée des différences d'utilisation entre les constantes PHP définies et const

伊谢尔伦
伊谢尔伦original
2017-06-29 13:18:541437parcourir

Une constante est un simple identifiant. Cette valeur ne peut pas être modifiée lors de l'exécution du script (sauf pour les constantes 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 la classe. Dans les versions précédentes, le mot-clé const ne peut ê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 constantes et variables sont différentes comme suit :

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

2 La constante ne peut être définie que via la fonction définir(), pas via la fonction. déclaration d'affectation

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

4. Une fois définie, une constante ne peut pas être redéfinie ou indéfinie

La valeur d'une constante ne peut être qu'une. 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, mais définir ne peut pas

3、Const不能再条件语句中定义常量

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

4、const采用普通的常量名称,define可以采用表达式作为名称

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

5、const只能接受静态的标量,而define可以采用任何表达式

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

6、const定义的常量时大小写敏感,而define可以通过第三个参数(为true表示大小写不敏感)来指定大小写是否敏感。

<?php
define(&#39;FOO&#39;, &#39;BAR&#39;, true);
echo FOO; // BAR
echo foo; // BAR
?>

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