Maison  >  Article  >  développement back-end  >  Quelle est la différence entre deux manières de définir des constantes PHP : définir et const ?

Quelle est la différence entre deux manières de définir des constantes PHP : définir et const ?

青灯夜游
青灯夜游avant
2022-07-27 11:30:093215parcourir

Cet article vous amènera à comprendre les constantes PHP, à comparer les deux méthodes de définition des constantes PHP et à parler de leurs différences. J'espère qu'il sera utile à tout le monde !

Quelle est la différence entre deux manières de définir des constantes PHP : définir 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 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 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 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 en spécifiant simplement 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 les constantes

2 Les constantes ne peuvent être définies que via la fonction définir(), pas par affectation. déclarations

3. Vous pouvez ignorer les constantes. La portée des variables peut être définie et accessible n'importe où

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

5.

<?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 d'une constante en PHP, const et définir la différence ?

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, définir ne peut pas

3. Const ne peut pas définir de constantes 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, 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. accepte les scalaires statiques, tandis que définir peut utiliser n'importe quelle expression

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

6. Les constantes définies par const sont sensibles à la casse, tandis que définir peut spécifier si la casse est sensible à la casse via le troisième paramètre (vrai signifie insensible à la casse).

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

Apprentissage recommandé : "Tutoriel vidéo PHP"

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer