Tuần trước, một người bạn đã hỏi tôi cách liệt kê hoặc liệt kê tất cả các biến trong một chương trình / hàm / v.v. cho mục đích gỡ lỗi (về cơ bản là lấy ảnh chụp nhanh của mọi thứ để bạn có thể xem những biến nào được đặt thành hoặc nếu chúng được đặt ở tất cả). Tôi đã xem xét xung quanh một chút và tìm thấy một cách tương đối tốt cho Python:
#! / usr / bin / python foo1 = "Xin chào thế giới" foo2 = "thanh" foo3 = {"1": "a", "2": "b"} foo4 = "1 + 1" cho tên trong dir (): myvalue = eval (tên) print name, "is", type (name), "và bằng", myvalue
sẽ xuất ra một cái gì đó như:
__builtins__ là <type 'str'> và bằng <module '__builtin__' (tích hợp sẵn)> __doc__ là <type 'str'> và bằng Không __file__ là <type 'str'> và bằng ./foo.py __name__ là <type 'str'> và bằng __main__ foo1 là <type 'str'> và bằng Hello world foo2 là <type 'str'> và bằng với thanh foo3 là <type 'str'> và bằng {'1': 'a', '2': 'b'} foo4 là <type 'str'> và bằng 1 + 1
Cho đến nay, tôi đã tìm thấy một phần cách trong PHP (nhờ vào văn bản liên kết ) nhưng nó chỉ liệt kê tất cả các biến và kiểu của chúng chứ không phải nội dung:
<? php // tạo một vài biến $ bar = 'foo'; $ foo = 'thanh'; // tạo một đối tượng mảng mới $ arrayObj = new ArrayObject (get_defined_vars ()); // lặp qua đối tượng mảng và các biến và giá trị echo for ($ iterator = $ arrayObj-> getIterator (); $ iterator-> valid (); $ iterator-> next ()) { echo $ iterator-> key (). '=>'. $ iterator-> current (). '<br />'; } ?>
Vì vậy, tôi đặt nó cho bạn: làm thế nào để bạn liệt kê tất cả các biến và nội dung của chúng bằng ngôn ngữ yêu thích của bạn?
Chỉnh sửa bởi VonC : Tôi đề xuất câu hỏi này theo tinh thần của một chút " thử thách mã ".
Nếu bạn không đồng ý, chỉ cần chỉnh sửa và xóa thẻ và liên kết.