Sự khác biệt giữa var_dump, var_exportvà là print_rgì?
Sự khác biệt giữa var_dump, var_exportvà là print_rgì?
Câu trả lời:
var_dump dành cho mục đích gỡ lỗi. var_dumpluôn luôn in kết quả.
// var_dump(array('', false, 42, array('42')));
array(4) {
[0]=> string(0) ""
[1]=> bool(false)
[2]=> int(42)
[3]=> array(1) {[0]=>string(2) "42")}
}
print_r cũng dành cho mục đích gỡ lỗi, nhưng không bao gồm loại của thành viên. Đó là một ý tưởng tốt để sử dụng nếu bạn biết các loại phần tử trong mảng của mình, nhưng có thể gây hiểu nhầm. print_rtheo mặc định in kết quả, nhưng cho phép trả về dưới dạng chuỗi thay vì sử dụng$returntham sốtùy chọn.
Array (
[0] =>
[1] =>
[2] => 42
[3] => Array ([0] => 42)
)
var_export in mã php hợp lệ. Hữu ích nếu bạn tính toán một số giá trị và muốn kết quả là một hằng số trong tập lệnh khác. Lưu ý rằngvar_exportkhông thể xử lý các chu kỳ tham chiếu / mảng đệ quy, trong khi đóvar_dumpvàprint_rkiểm tracác mảngnày. var_exporttheo mặc định in kết quả, nhưng cho phép trả về dưới dạng chuỗi thay vì sử dụng$returntham sốtùy chọn.
array (
0 => '',
1 => false,
2 => 42,
3 => array (0 => '42',),
)
Cá nhân, tôi nghĩ var_exportlà sự thỏa hiệp tốt nhất của súc tích và chính xác.
var_export, do bản chất của nó, sẽ chết một cái chết đệ quy khủng khiếp trên, mảng, đệ quy. print_rvà var_dump(mặc dù, không hoàn toàn chắc chắn về sau này, vì tôi thường không sử dụng nó) không có vấn đề đó. Vì vậy, không var_export($_GLOBALS);, ví dụ (có chứa chính nó). :)
var_dumpđầu ra. Quá tệ, nó không cho phép trả lại đầu ra dưới dạng một chuỗi. Như vậy tôi có thể liên quan đến tình cảm của @ iconoclast trong bình luận ở trên. Nhưng phải chọn var_exporthơn var_dumpđối với trường hợp sử dụng này là chấp nhận được đối với tôi. Để đầy đủ, lưu ý yêu cầu tính năng liên quan này .
var_dumpvà var_exportliên quan như thế này (từ hướng dẫn )
var_export () nhận thông tin có cấu trúc về biến đã cho. Nó tương tự như var_dump () với một ngoại lệ: biểu diễn được trả về là mã PHP hợp lệ.
Chúng khác với print_rviệc var_dumpxuất thêm thông tin, như kiểu dữ liệu và kích thước của các phần tử.