La différence entre Define et Const en PHP

不言
Libérer: 2023-04-02 12:20:02
original
2445 Les gens l'ont consulté

Cet article présente principalement la différence entre Define et Const en PHP. Il a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

Nous changeons souvent les valeurs qui le font. ne change pas fréquemment. Définies comme une constante, les constantes sont généralement exprimées en lettres majuscules sans le signe dollar devant. Alors, quelle est la différence entre 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 php7, vous pouvez définir des constantes de tableau. 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.

<?php
// 以下代码在 PHP 5.3.0 后可以正常工作
const USERNAME = &#39;周伯通&#39;;
echo USERNAME.PHP_EOL;
echo constant("USERNAME");
const ZHOUUSERNAME = &#39;周伯通九阴真经&#39;;define(&#39;MYUSERNAME&#39;,&#39;周伯通九阴真经2&#39;);
echo "<pre class="brush:php;toolbar:false">";
print_r(get_defined_constants());
?>
Copier après la connexion

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

1. const est une structure de langage définie ; une fonction, vous pouvez spécifier s'il faut être sensible à la casse via le troisième paramètre. true signifie insensibilité à la casse, la valeur par défaut est false

2. const est simple et facile à lire, et est beaucoup plus rapide à compiler qu'à définir.

3. const peut être utilisé dans les classes pour définir les constantes des membres de la classe et ne peut pas être modifié après la définition ; définir ne peut pas être utilisé dans les classes et peut être utilisé pour les variables globales

<?php
class MyClass
{    const USER = &#39;周伯通&#39;;    
function showConstant() {        
echo  self::USER . PHP_EOL;        
echo  constant(&#39;USER&#39;); // 注意:Warning: constant(): Couldn&#39;t find constant USER    
}
}
$class = new MyClass();
$class->showConstant();
Copier après la connexion

4. const est défini au moment de la compilation, il doit donc être dans la portée la plus élevée et ne peut pas être utilisé dans les fonctions, les boucles et if conditions;Et définir est une fonction, c'est-à-dire qu'elle peut être utilisée partout où une fonction peut être appelée

<?php
$x = true;
if ($x==1){   
//const FOO = &#39;BAR&#39;;    
// 无效的invalid
}
if ($x==1){    
define(&#39;FOO&#39;, &#39;BAR&#39;); // 有效的valid
    echo FOO;
}
Copier après la connexion

Ce qui précède. C'est tout le contenu de cet article. J'espère qu'il sera utile à tout le monde. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Analyse de l'utilisation de ob_start en PHP

Explication de la fonction PHP empty()

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!