2010-07-18 2 views
6

Есть ли преимущество использования одного над другим?переменная или постоянная?

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

Благодаря

+1

«[PHP]» не обязательно, для чего нужны теги. – Wrikken

ответ

5

В этом случае константа более подходит. Поскольку вы хотите использовать одно и то же значение во всем своем приложении, и вы не хотите, чтобы он был изменен по ошибке.

Обратите внимание, что языки программирования имеют множество функций, которые вам не нужно использовать для реализации алгоритма, но они там, чтобы сделать алгоритм более удобочитаемым, поддерживаемым и менее подверженным ошибкам. Константы - один из тех типов функций.

1

Это зависит от того, что вы хотите сделать. Значение константы не может измениться после ее определения. Переменная может. Это различие должно заставить вас выбрать тот, который вам нужен.

+0

Я получил это - я имел в виду производительность. – MotionGrafika

+0

@MotionGrafika: У вас возникли проблемы с производительностью? Если нет, выберите подход, который лучше подходит для концепций. –

+0

Я не тестировал бенчмаркинг, константы выглядят лучше. – MotionGrafika

5

Константа:

  1. не может быть изменена впоследствии.
  2. Всегда в области (в классах/функциях/методах).
  3. Может быть только скаляры (или файл-ресурсы, но это только недокументированная особенность/ошибка)

Переменные:

  1. изменчивы.
  2. Может быть вне сферы действия.
  3. Могут быть любые данные.
+0

Я знаю об этом - но с точки зрения пользователя - значение не будет изменяться в коде после установки/сброса пользователем. – MotionGrafika

+1

Вы можете быть благословлены достойными коллегами или вашим собственным проектом: кодеры могут изменять ваши переменные, когда вы меньше всего этого ожидаете ... – Wrikken

Смежные вопросы