Другие языки программирования и технологии

Как передать имя переменной из функции?

Всем привет!
Есть задачка необходимо из функции вернуть строку с именем переменной. Как сделать?
пример:
function a()
{
return "Ваше имя $name";
}
$name = "Вася";
$string = a();
echo $string; //Нужно что бы выводилось "Ваше имя Вася "
function a() {
    global $name;
    return "Ваше имя $name";
}
$name = "Вася";
$string = a();
echo $string;

ЗЫ: какой жесткий быдлокодинг -- плакать хочется :-( Используй аргументы функции для передачи в нее значений:
function a($n) {
    return "Ваше имя $n";
}
$name = "Вася";
echo a($name);
Denis Berg
Denis Berg
61 255
Лучший ответ
Во-первых,
echo() не функция, а языковая конструкция, которая может использоватся без скобок и выводить значения через запятую, например в отличии от print()

Во вторых,
Метод - это функция класса

В третьих, анонимные функции НЕ ДОЛЖНЫ использоватся таким образом.
Анонимные функции должны быть коллбэком

В четвертых, есть неколько способов реализации данного примера (исходя из вопроса)

1. Использовать указатели в памяти - референсы относитилено переменной которую нужно изменить.

function a(&$name){
$name = $name;
}

$name = 'test';

printf('Ваше имя %s', $name); //Ваше имя test

a('Вася');

printf('Ваше имя %s', $name); //Ваше имя Вася

2) global подходит! Глобал - делает переменнут видимой в теле заданной функции.

С глобал:

$name = 'Вася';

function(){
//$name НЕ ВИДИМА ЗДЕСЬ!!! !
//$name === NULL здесь
}

function a(){
global $name;
//$name теперь ВИДИМА ЗДЕСЬ!!! !
return "Ваше имя : $name";
}

3) Только что Вышеуказанные способы - не рекоменуемы. Это не правильно. Это не красиво. Это не технично.
Правиильно - нужно передавать параметер в функцию.

function a($name){
return "Name is $name";
}

echo a('test'); //Name is test
function a($n){
return "Ваше имя $name";
}
$name = "Вася";
echo а ($name);