Вы можете просто объявить переменные как глобальные в области 1 и присвоить значение переменным.Далее объявите ту же переменную, что и глобальная, в теле функции (область 2) для доступа к ней.Приведенный выше пример становится
// SCOPE 1
global $var1, $var2;
$var1 = 1;
$var2 = 2;
printsmth();
function printsmth(){
global $var1, $var2;
echo 'Var1:' . $var1 . 'Var2:' . $var2;//now accessible in scope 2
}
Другой вариант заключается в том, что вы можете передавать переменные по ссылке на функцию.Например,
// SCOPE 1
$var1 = 1;
$var2 = 2;
printsmth($var1, $var2);
// Note the "&" appended to the parameters. This passes the variables to the
// function by reference. Any modifications made to the variables will update
// the actual variables in the scope 1
function printsmth(&$var1, &$var2){
global $var1, $var2;
echo 'Var1:' . $var1 . 'Var2:' . $var2;//now accessible in scope 2
}