Maison  >  Article  >  développement back-end  >  Explication détaillée de la différence entre les constantes PHP définies et const

Explication détaillée de la différence entre les constantes PHP définies et const

黄舟
黄舟original
2017-11-15 10:41:291627parcourir

Dans notre article précédent, nous vous avons présenté des exemples d'utilisation de définir en php. Je pense que vous avez une certaine compréhension de définir. Aujourd'hui, nous allons vous présenter une explication détaillée de la différence entre les constantes php définies. et const.

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 définir() 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 différences entre les constantes et les 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(), pas les instructions d'affectation

3. ignorer le rôle des variables Le domaine est défini et accessible partout

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

5. Constante La valeur 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 définir les 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, définir ne peut pas

3. Const ne peut pas définir de constantes dans des 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, définir 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. prends n'importe quelle expression

<?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
?>

总结:

本文通过实例为大家更为直观的了解php常量define与const的区别详解,希望对你的工作有所帮助!

相关推荐:

php中define的使用详解


php define常量详解


php define的第二个参数使用方法

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