наконец нашел его, и я озадачен тем, что это было так очевидно:
$outside_var = 'wrong';
$closure = function($var_name,$new_value) {
global $$var_name; // SO OBVIOUS!!!
$$var_name = $new_value;
};
echo $outside_var."\n";
$closure('outside_var','right');
echo $outside_var."\n";
К сожалению, ограничение заключается в том, что переменная должна быть объявлена перед закрытием, в противном случае переменная имеет значение NULL.