Maison >développement back-end >tutoriel php >Un regard direct sur les différences entre static, const et Defined en PHP

Un regard direct sur les différences entre static, const et Defined en PHP

coldplay.xixi
coldplay.xixiavant
2020-08-12 17:19:252725parcourir

Un regard direct sur les différences entre static, const et Defined en PHP

définir la section :
Les macros ne peuvent pas seulement être utilisées pour remplacer Les valeurs constantes peuvent également être utilisées pour remplacer des expressions ou même des extraits de code. (Les macros sont très puissantes, mais elles sont également sujettes aux erreurs, leurs avantages et inconvénients sont donc assez controversés.)
La syntaxe de la macro est :
#define macro name macro value
en tant que Il est recommandé et courant parmi les programmeurs que les noms de macro utilisent souvent des lettres majuscules.

Recommandations d'apprentissage associées : Programmation php (vidéo)

Avantages de l'utilisation des macros :
1) Rendre le code plus concis et clair
Bien sûr, cela dépend de ce que vous donnez à la macro un nom approprié. De manière générale, les noms de macro doivent avoir une signification claire et intuitive, et il est parfois préférable de les allonger.
2) Maintenance pratique du code
Le traitement des macros est appelé « prétraitement » pendant le processus de compilation. C'est-à-dire qu'avant la compilation formelle, le compilateur doit d'abord remplacer les macros qui apparaissent dans le code par leurs valeurs de macro correspondantes. Ce processus est similaire à la recherche et au remplacement que vous et moi utilisons dans les logiciels de traitement de texte. Par conséquent, lorsque des macros sont utilisées pour exprimer des constantes dans le code, en dernière analyse, des nombres immédiats sont utilisés et le type de cette quantité n'est pas clairement spécifié.
partie const
Le format de la définition de la constante est :
nom de la constante de type de données const = valeur constante ;
La constante définie par const a une donnée type, la définition de constantes de types de données permet au compilateur de vérifier les données et de résoudre les erreurs possibles dans le programme. Une constante doit initialement spécifier une valeur, puis, dans le code suivant, nous ne sommes pas autorisés à modifier la valeur de cette constante.
La différence entre les deux :
Dans l'allocation de l'espace mémoire. Lorsque définir définit une macro, elle n'allouera pas d'espace mémoire. Elle sera remplacée dans la fonction principale lors de la compilation. Il s'agit simplement d'un simple remplacement sans aucune vérification, telle que le type, la structure de l'instruction, etc. est juste un pur placement.Relation,

telle que #define null 0 ; le compilateur remplace toujours null par 0 lorsqu'il rencontre null. Si vous avez des questions, veuillez consulter le prétraitement. fait partie du livre sur le langage C ou consultez MSDN. Et const Les constantes définies ont des types de données Les constantes qui définissent les types de données permettent au compilateur de vérifier les données et de résoudre les erreurs possibles dans le programme. Par conséquent, la différence entre const et definition est que const. -Les constantes définies éliminent l'insécurité entre les programmes.

define définit des constantes globales, accessibles n'importe où. Const est utilisé pour les définitions de variables de membres de classe. Il n'est accessible qu'avec les noms de classe et ne peut pas être modifié si vous le souhaitez. Si vous êtes débutant, il est évident de comprendre. Ne vous impliquez pas trop. PHP5 a ajouté de nombreuses fonctionnalités orientées objet. La pensée orientée objet de PHP5 est plus proche de la pensée orientée objet de Java. Nous décrivons ici les fonctions des mots-clés static et const en PHP5, dans l'espoir d'être utiles aux amis qui apprennent PHP5.


(1) Le mot-clé staticstatic dans une classe décrit qu'un membre est statique. Static peut restreindre l'accès externe car les membres après static appartiennent à la classe et n'appartiennent à aucune instance d'objet, à d'autres classes. ne peut pas y accéder, et il est partagé uniquement avec les instances de la classe, afin que le programme puisse protéger les membres de tout leur cœur. Les variables statiques d'une classe sont très similaires aux variables globales et peuvent être partagées par toutes les instances de la classe. Il en va de même pour les méthodes statiques d'une classe, similaires aux fonctions globales. Les méthodes statiques d'une classe peuvent accéder aux propriétés statiques de la classe. De plus, les membres statiques doivent être accessibles en utilisant self. L'utilisation de ceci provoquera une erreur.


(2) constconst est un mot-clé qui définit une constante, similaire à #define en C. Il peut définir une constante si sa valeur est modifiée dans le programme, une erreur se produira. Donnez un exemple du code ci-dessus :

Le code est le suivant :

<?php 
class Counter 
{ 
private static $count = 0;//定义一个静态属性 
const VERSION = 2.0;//定义一个常量 
//构造函数 
function __construct() 
{ 
self::$count++; 
} 
//析构函数 
function __destruct() 
{ 
self::$count--; 
} 
//定义一个静态的方法 
static function getCount() 
{ 
return self::$count; 
} 
} 
//创建一个实例 
$c = new Counter(); 
//执行打印 
print( Counter::getCount(). "<br>\n" ); //使用直接输入类名来访问静态方法Counter::getCount 
//打印类的版本 
print( "Version useed: " .Counter::VERSION. "<br>\n" ); 
?>

Recommandations associées : Cours vidéo de programmation

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