Maison >développement back-end >Problème PHP >Quelle est la raison pour laquelle php utilise l'erreur const ?

Quelle est la raison pour laquelle php utilise l'erreur const ?

silencement
silencementoriginal
2019-09-27 15:44:352828parcourir

Quelle est la raison pour laquelle php utilise l'erreur const ?

Tout le monde sait que définir définit des constantes. Et si nous définissons des constantes dans une classe ? Bien sûr, vous ne pouvez pas utiliser définir, mais utilisez const, comme dans l'exemple suivant :

<?php
//在类外面通常这样定义常量
define("PHP","phpernote.com");
class MyClass{
    //常量的值将始终保持不变。在定义和使用常量的时候不需要使用$符号
    const constant = &#39;constant value&#39;;
    function showConstant() {
        echo  self::constant;
    }
} 
echo MyClass::constant;
 
$classname = "MyClass";
echo $classname::constant; // PHP 5.3.0之后
 
$class = new MyClass();
$class->showConstant();
echo $class::constant; // PHP 5.3.0之后

print_r(get_defined_constants()); //可以用get_defined_constants()获取所有定义的常量

Généralement, définir définit les constantes en dehors de la classe, const définit les constantes au sein de la classe et const doit être accessible via le nom de la classe : :nom de la variable. Cependant, php5.3 et supérieur prennent en charge la définition de constantes en dehors des classes via const. Voir ce qui suit. C'est OK :

const a = "abcdef";
echo a;

Concernant la connaissance de base des constantes, je n'entrerai pas dans les détails ici. ce qui précède, il existe d'autres différences entre définir et const (extrait de Réseau) :

1.const ne peut pas définir de constantes dans les instructions conditionnelles, mais définir est possible, comme suit :

if(1){
    const a = &#39;java&#39;;
}
echo a;  //必错

2. const utilise un nom de constante ordinaire et définir peut utiliser des expressions. Comme nom

const  FOO = &#39;PHP&#39;;
for ($i = 0; $i < 32; ++$i) { 
    define(&#39;PHP_&#39; . $i, 1 << $i); 
}

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

const PHP = 1 << 5;    // 错误
define(&#39;PHP&#39;, 1 << 5); // 正确

4.const lui-même est une structure de langage. Et définir est une fonction. Utiliser const est donc beaucoup plus rapide.

C’est toute la différence entre const et definition en 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:
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