$x = 5; // доступна в любом месте кода после определения$y = 2;$z = 10;include('file.php'); // все что внутри доступно для взаимодействияfunctionfoo($y){echo$x; // недоступна так как не передана в функциюecho$y; // все окglobal$x; //ссылка на исходную переменную, изменения затронут оригиналecho$x; //теперь доступнаecho$GLOBALS['x']; // Другой вариант получить доступ к глобальной переменной}foo($y);
Статические переменные
functiongetValue(){$value = someFoo();return$value;}functionsomeFoo(){sleep(5);return10;}getValue();getValue();getValue(); // общее время выполнения 15 секунд// но если изменить функцию functiongetValue(){static$value = null; // вариант кеширования значенияif($value === null){$value = someFoo(); }return$value;}// Общее время выполнения сократится до 5 секунд// функция someFoo выполнится один раз, даже если вызовов несколько