Sự khác biệt giữa var_dump
, var_export
và là print_r
gì?
Sự khác biệt giữa var_dump
, var_export
và là print_r
gì?
Câu trả lời:
var_dump dành cho mục đích gỡ lỗi. var_dump
luô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_r
theo 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$return
tham 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_export
không thể xử lý các chu kỳ tham chiếu / mảng đệ quy, trong khi đóvar_dump
vàprint_r
kiểm tracác mảngnày. var_export
theo 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$return
tham sốtùy chọn.
array (
0 => '',
1 => false,
2 => 42,
3 => array (0 => '42',),
)
Cá nhân, tôi nghĩ var_export
là 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_r
và 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_export
hơ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_dump
và var_export
liê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_r
việc var_dump
xuất thêm thông tin, như kiểu dữ liệu và kích thước của các phần tử.