Maison >développement back-end >tutoriel php >Quelle est la différence entre définir et const en php ? (explication détaillée)

Quelle est la différence entre définir et const en php ? (explication détaillée)

不言
不言avant
2019-01-07 11:13:383983parcourir

Le contenu de cet article porte sur quelle est la différence entre définir et const en php ? (Explication détaillée) a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère que cela vous sera utile.

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

const CONSTANCE = 'const';
define('CONSTANCE',  'const');

Le mot-clé const peut définir des constantes en dehors de la définition de la classe à partir de PHP 5.3

const peut être défini à l'intérieur de la classe, mais definition ne peut pas.
Les constantes définies par const se trouvent dans l'espace de noms actuel, et définir doit écrire l'espace de noms spécifique pour définir l'espace de noms pour l'exécution.

class Foo {
    const BAR = 2;
}


class Foo2 {
    define("BAR", 3); //无效的
}

//命名空间的示例
namespace A{
    const A1 = 1; //处在命名空间A中
    define('A2',  2); //全局可调用
    define('A\A3', 3); //处在命名空间A中
}

namespace B{
    use const \A\A1;
    use const \A\A3;
    
    echo A1;
    echo A2; //全局调用
    echo A3;
}

const définit les constantes dans la phase de compilation, définit définit les constantes dans la phase de prétraitement

const définit les constantes dans la phase de compilation et doit être défini lors de la définition constantes En haut de la zone d'action.
Il ne peut donc pas être défini dans des instructions conditionnelles telles que if.

define définit des constantes, également appelées définitions de macro. Les macros peuvent être décrites comme remplaçant certains modèles de texte selon une série de règles prédéfinies.
define peut exister dans une branche.

Théoriquement, utiliser const sera un peu plus rapide que définir.

const n'accepte que les données scalaires (telles que les entiers, les chaînes, les booléens et les flottants, etc.) ; définir peut accepter n'importe quelle expression

define('BIT_5',   1<<5); 
const BIT_5 =     1<<5; //5.6之后才有效
À partir de PHP 5.6, const peut également accepter des tableaux et des expressions
define peut accepter le type resource, const ne peut pas, définir peut être n'importe quelle expression

const sensible à la casse, définir peut contrôler la sensibilité à la casse via le troisième paramètre. Quelques autres questions

const STR = 'string';
$i = 1;
define("STR_" . $i,  STR);

Les tableaux constants définis par const et definition peuvent-ils modifier les éléments ?

Pouvez-vous utiliser défini pour vérifier les constantes définies par const ?

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