2010-07-18 6 views
6

Y a-t-il un avantage à utiliser l'un plutôt que l'autre?variable ou constante?

$lang = isset($_COOKIE['lang']) ? $_COOKIE['lang'] : 'en'; 
# OR 
define("LANG" , isset($_COOKIE['lang']) ? $_COOKIE['lang'] : 'en'); 

Merci

+1

'[PHP]' n'est pas nécessaire, c'est à ça que servent les tags. – Wrikken

Répondre

5

Dans ce cas, une constante est plus appropriée. Comme vous voulez utiliser la même valeur pour l'ensemble de votre application, et vous ne voulez pas qu'elle soit modifiée par erreur. Notez que les langages de programmation ont de nombreuses fonctionnalités que vous n'avez pas besoin d'utiliser pour implémenter un algorithme, mais ils sont là pour rendre l'algorithme plus lisible, plus facile à maintenir et moins sujet aux bogues. Les constantes sont l'un de ces types de fonctionnalités.

1

Cela dépend de ce que vous voulez faire. La valeur de la constante ne peut pas être modifiée une fois qu'elle est définie. La variable peut. Cette différence devrait vous faire choisir celle dont vous avez besoin.

+0

J'ai compris - je voulais parler de performance. – MotionGrafika

+0

@MotionGrafika: Avez-vous des problèmes de performances? Sinon, choisissez l'approche qui correspond le mieux au concept. –

+0

Je n'ai pas fait de test d'évaluation, les constantes sont plus belles. – MotionGrafika

5

Constantes:

  1. ne peuvent pas être modifiés par la suite.
  2. Sont toujours dans la portée (dans les classes/fonctions/méthodes).
  3. ne peuvent être que (ou fichier scalaires-ressources, mais c'est juste une fonctionnalité/bogue non documentée)

Variables:

  1. sont modifiables.
  2. Peut être hors de la portée.
  3. Peut être n'importe quelle donnée.
+0

Je suis conscient de cela - mais du point de vue de l'utilisateur - la valeur ne changera pas dans le code une fois réglé/réinitialisé par l'utilisateur. – MotionGrafika

+1

Vous pouvez être béni avec des collègues décents ou votre propre projet: les codeurs peuvent modifier vos variables quand vous vous y attendez le moins ... – Wrikken