Чем переменные static отличаются от global в PHP при использовании функций?

Чем статические переменные static (статик) отличаются от глобальный global (глобал) в PHP?
Не буду грузить вас теорией. Все покажу на примерах. Они наглядны и понятны:

Сначала обычный вариант функции с обычной переменной в функции. Она локальна и вне функции не видима:

function Test(){
  $a = 0;
  echo $a++;
}
Test (); // Выведет 0
Test (); // Выведет 0
Test (); // Выведет 0


Затем объявим внутри функции эту переменной static. Теперь она будет сохранять свое значение, но только внутри функции. Снаружи функции эта переменная не будет доступна:

function Test(){
  static $a = 0;
  echo $a++;
}
Test (); // Выведет 0
Test (); // Выведет 1
Test (); // Выведет 2
// внимание, в функции мы приравниваем $a к нулю. Но она все равно прибавляется.
// Приравнивание к нулю только !!при первом обращении!!


Ну а переменная global действует таким образом:

function Test(){
  global $a, $b; // теперь их значения стали видны и внутри функции, без слова globaл этих переменных не было бы
  $b = $a + $b;
}

$a = 1; $b = 2;
Test ();
echo $b;  // Выведет 3



Оставить свой ответ:

Имя:*
E-Mail:
Вопрос:
Skolko buдет пять пдюс сeмь?
Ответ:*
QQpedia21.ru - cамые интересные вопросы