2010-07-18 2 views
6

Gibt es einen Vorteil, einen über den anderen zu verwenden?variabel oder konstant?

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

Dank

+1

'[PHP]' ist nicht notwendig, dafür sind Tags gedacht. – Wrikken

Antwort

5

In diesem Fall ist eine Konstante geeigneter. Da Sie den gleichen Wert für Ihre gesamte Anwendung verwenden möchten und Sie nicht möchten, dass sie möglicherweise versehentlich geändert wird.

Merkt Programmiersprachen hat viele Funktionen, die Sie brauchen keine algorithem zu implementieren zu verwenden, sondern sie sind da die algorithem besser lesbar, wartbar und weniger anfällig machen Fehler zu bekommen. Konstanten gehören zu diesen Merkmalen.

1

Es hängt davon ab, was Sie tun wollen. Der Wert der Konstante kann nicht geändert werden, sobald sie definiert ist. Die Variable kann. Dieser Unterschied sollte Sie dazu bringen, den zu wählen, den Sie brauchen.

+0

Ich habe das - ich meinte Performance-weise. – MotionGrafika

+0

@MotionGrafika: Haben Sie Leistungsprobleme? Wenn nicht, wählen Sie den Ansatz, der konzeptionell besser passt. –

+0

Ich habe keinen Benchmark-Test gemacht, Konstanten sehen schöner aus. – MotionGrafika

5

Konstanten:

  1. kann nicht nachträglich geändert werden.
  2. Sind immer im Umfang (in Klassen/Funktionen/Methoden).
  3. Kann nur Skalar sein (oder Datei-Ressourcen, aber das ist nur eine nicht dokumentierte Funktion/bug)

Variablen:

  1. veränderbar ist.
  2. Möglicherweise nicht in Geltungsbereich.
  3. Kann irgendwelche Daten sein.
+0

Ich bin mir dessen bewusst - aber aus der Sicht eines Benutzers - wird sich der Wert im Code nicht ändern, sobald er vom Benutzer gesetzt/zurückgesetzt wurde. – MotionGrafika

+1

Sie können mit anständigen Mitarbeitern oder Ihrem eigenen Projekt gesegnet sein: Programmierer können Ihre Variablen ändern, wenn Sie es am wenigsten erwarten ... – Wrikken