Нужна помощь в рефакторинге глобальной переменной в PHP - PullRequest
2 голосов
/ 23 октября 2011

У меня есть сценарий рецепта с некоторым кодом PHP, который был написан с помощью глобальных переменных. Может ли кто-нибудь сказать мне общий процесс (или, так сказать, порядок операций), которому я мог бы следовать, чтобы начать заменять глобальные переменные? Вот пример:

function computeCost() {
  global $DB_LINK;
  $this->loadIngred();

  if ($this->liquid == $DB_LINK->true)
    $liquid = true;
  $amount = Units::convertTo($this->amount, $this->unitMapping, $this->unit, 
    $this->liquid);
  return ($this->amount * $this->cost);
}

1 Ответ

7 голосов
/ 23 октября 2011

Вместо использования глобальной переменной вы можете передать ее в функцию следующим образом:

function computeCost($db_link) {

И вызвать функцию следующим образом:

$returnValue = computeCost($DB_LINK);

Таким образом, глобалы не нужны (и это лучше), и вы передаете данные в функцию. Таким образом, функция не зависит от внешней среды, как это должно быть.

...