На прошлой неделе друг спросил меня, как перечислить или перечислить все переменные в программе/функции/и т.д. для целей отладки (по существу, получение моментального снимка всего, чтобы вы могли видеть, какие переменные установлены или вообще установлены). Я немного оглянулся и нашел относительно хороший способ для Python:
#!/usr/bin/python foo1 = "Hello world" foo2 = "bar" foo3 = {"1":"a", "2":"b"} foo4 = "1+1" for name in dir(): myvalue = eval(name) print name, "is", type(name), "and is equal to ", myvalue
который выведет что-то вроде:
__builtins__ is <type 'str'> and is equal to <module '__builtin__' (built-in)> __doc__ is <type 'str'> and is equal to None __file__ is <type 'str'> and is equal to ./foo.py __name__ is <type 'str'> and is equal to __main__ foo1 is <type 'str'> and is equal to Hello world foo2 is <type 'str'> and is equal to bar foo3 is <type 'str'> and is equal to {'1': 'a', '2': 'b'} foo4 is <type 'str'> and is equal to 1+1
Я до сих пор нашел частичный способ в PHP (любезно предоставлен текст ссылки), но он перечисляет только все переменные и их типы, а не содержимое:
<?php // create a few variables $bar = 'foo'; $foo ='bar'; // create a new array object $arrayObj = new ArrayObject(get_defined_vars()); // loop over the array object and echo variables and values for($iterator = $arrayObj->getIterator(); $iterator->valid(); $iterator->next()) { echo $iterator->key() . ' => ' . $iterator->current() . '<br />'; } ?>
Итак, я рассказываю вам: как вы перечисляете все переменные и их содержимое на своем любимом языке?
Изменить VonC: Я предлагаю этот вопрос следовать духу небольшого "code-challenge".
Если вы не согласны, просто отредактируйте и удалите тег и ссылку.