Минулого тижня друг запитав мене, як перерахувати чи перерахувати всі змінні в програмі / функції / тощо. для цілей налагодження (по суті отримання знімка всього, щоб ви могли бачити, для яких змінних встановлено, або якщо вони встановлені взагалі). Я трохи озирнувся і знайшов відносно хороший спосіб для Python:
#! / usr / bin / python foo1 = "Привіт світ" foo2 = "бар" foo3 = {"1": "а", "2": "b"} foo4 = "1 + 1" для імені в папці (): myvalue = eval (ім'я) друкувати ім'я, "є", тип (ім'я), "і дорівнює", myvalue
який виведе щось на зразок:
__builtins__ має <тип 'str'> і дорівнює <модулю '__builtin__' (вбудований)> __doc__ має <тип 'str'> і дорівнює None __file__ має <тип 'str'> і дорівнює ./foo.py __name__ має <тип 'str'> і дорівнює __main__ foo1 має <тип 'str'> і дорівнює Hello world foo2 має <тип 'str'> і дорівнює бар foo3 має <тип 'str'> і дорівнює {'1': 'a', '2': 'b'} foo4 має <тип 'str'> і дорівнює 1 + 1
Я поки що знайшов частковий спосіб у PHP (люб'язно надавши текст посилання ), але він перераховує лише всі змінні та їх типи, а не вміст:
<? php // створимо кілька змінних $ bar = 'foo'; $ foo = 'бар'; // створюємо новий об'єкт масиву $ arrayObj = новий ArrayObject (get_defined_vars ()); // цикл над об'єктом масиву та ехо-змінними та значеннями для ($ iterator = $ arrayObj-> getIterator (); $ iterator-> valid (); $ iterator-> next ()) { echo $ iterator-> key (). '=>'. $ iterator-> current (). '<br />'; } ?>
Тож я вам це сказав: як ви перелічуєте всі змінні та їх вміст улюбленою мовою?
Редагування VonC : Я вважаю, що це питання відповідає духу невеликого " виклику коду ".
Якщо ви не згодні, просто відредагуйте та видаліть тег та посилання.