Если вы не обновляете глобальную переменную (использование которой не является наилучшей практикой), единственный способ «получить доступ» к переменной, присутствующей в функции / методе, - это если функция / метод возвращает требуемое значение илипринимает переменную по ссылке в качестве параметра и обновляет переменную.
т.е.:
// curl returns the required value.
$name = curl('email@xxx');
или
// The curl function optionally accepts the '$name' parameter
// which can be overwritten in its original scope.
function curl($email, &name=null) {
...
$name = 'xxx';
...
}
if(curl('email@xxx', $name))
...
Это связано с тем, что переменные в функциях/ методы / классы и т. д. видны только в той области, с которой они определены.(Это хорошо.)
Подробнее об этом можно прочитать по адресу: http://php.net/manual/en/language.variables.scope.php
Между прочим, у меня возникнет соблазн не называть функцию "curl", так как эторискованно с точки зрения конфликта с существующей функцией - что-то вроде «fetchUserData» может быть лучшим подходом.