я к тому что ты в своей погоне за упрощением написал уже чуть ли не больше текста чем все эти переменные вместе взятые. =) выгода от твоих усилий сейчас стремительно бежит к нулю.
функция собирает все свои названия и значения переданных аргументов в двумерный ассоциативный массив. PHP: <?php #описываем переменные $ss = 'hello'; $s3s = 234; $erdd = array(13,'world','mixedmass'=>'mixedval', array(333,444)); #сабж function myFunk() { $p = debug_backtrace(); foreach ($p[0]['args'] as $pp) { $s = array_keys($GLOBALS ,$pp); $ret[$s[0]] = $pp; } return $ret; } # демонстрация print '<pre>'; $z = myFunk($ss, $s3s, $erdd); print var_dump($z); Код (Text): array(3) { ["ss"]=> string(5) "hello" ["s3s"]=> int(234) ["erdd"]=> array(4) { [0]=> int(13) [1]=> string(5) "world" ["mixedmass"]=> string(8) "mixedval" [2]=> array(2) { [0]=> int(333) [1]=> int(444) } } }
теоритически получать имена переменных никогда не нужно. Именно поэтому создали php не предусмотрели инструментов для извлечения их имен.
Ну потому что оно нужно не всем. Чаще - разработчикам крупных систем и фреймворков. Например, Yii позволяет позволяет определить действие контроллера как actionName($var) и $var будет взят из запроса $_GET['var'] (и исключение, если его там нет). Zend да и другие фреймворки, которые поддерживают генерацию автоматическую WSDL для SOAP-а на основе интерфейса класса работают с названиями методов класса, их параметрами и phpdoc-ом для определения типа переменных. Ну много еще разных фишек, которые, как правило, не нужны тем, кто просто фигачит код.