Câu trả lời:
Các var_dump
hiển thị chức năng cấu trúc thông tin về biến / biểu thức bao gồm cả của nó loại và giá trị . Mảng được khám phá đệ quy với các giá trị thụt vào để hiển thị cấu trúc. Nó cũng chỉ ra giá trị mảng và thuộc tính đối tượng nào là tham chiếu.
Con người print_r()
hiển thị thông tin về một biến theo cách mà con người có thể đọc được. giá trị mảng sẽ được trình bày theo định dạng hiển thị các khóa và phần tử . Ký hiệu tương tự được sử dụng cho các đối tượng.
Thí dụ:
$obj = (object) array('qualitypoint', 'technologies', 'India');
var_dump($obj)
sẽ hiển thị bên dưới đầu ra trong màn hình.
object(stdClass)#1 (3) {
[0]=> string(12) "qualitypoint"
[1]=> string(12) "technologies"
[2]=> string(5) "India"
}
Và, print_r($obj)
sẽ hiển thị dưới đầu ra trong màn hình.
stdClass Object (
[0] => qualitypoint
[1] => technologies
[2] => India
)
Thêm thông tin
Nói chung là, print_r( )
đầu ra đẹp hơn, ngắn gọn hơn và dễ đọc hơn, hay còn gọi là con người dễ đọc hơn nhưng không thể hiển thị các loại dữ liệu.
Với print_r()
bạn cũng có thể lưu trữ đầu ra thành một biến:
$output = print_r($array, true);
mà var_dump()
không thể làm được Tuy nhiên, var_dump()
có thể hiển thị các loại dữ liệu.
var_dump()
sẽ cho bạn thấy loại của sự vật cũng như những gì trong đó.
Vì vậy, bạn sẽ nhận được => (string)"var"
Ví dụ ở đây.
print_r()
sẽ chỉ xuất nội dung.
Sẽ xuất => "var"
Ví dụ ở đây.
var_dump(0.0);
đầu ra nào float(0)
so với print_r(0.0);
đầu ra nào 0
(do đó dẫn đến sự nhầm lẫn kiểu có thể xảy ra) ...
Nếu bạn hỏi khi nào bạn nên sử dụng cái gì, tôi thường sử dụng print_r()
để hiển thị các giá trị và var_dump()
khi gặp sự cố với các loại biến.
var_dump
hiển thị thông tin có cấu trúc về đối tượng / biến. Điều này bao gồm loại và giá trị. Giống như print_r
mảng được đệ quy thông qua và thụt lề.
print_r
hiển thị thông tin có thể đọc được của con người về các giá trị với định dạng trình bày các khóa và phần tử cho mảng và đối tượng.
Điều quan trọng nhất cần chú ý là var_dump
loại đầu ra cũng như các giá trị trong khi print_r
không.
Sự khác biệt đáng kể giữa var_dump
vàprint_r
cả hai hàm đều bỏ thông tin về biến , nhưng var_dump
nhiều tham số sẽ được kết xuất, trong đó print_r
có thể lấy hai tham số trong đó tham số đầu tiên là biến bạn muốn kết xuất và thứ hai là giá trị boolean.
var_dump
không thể trả lại bất kỳ giá trị mà nó chỉ có thể đổ / in các giá trị nơi như print_r có thể trả lại thông tin biến nếu chúng ta thiết lập tham số thứ hai của print_r
để đúng . Giá trị trả về của print_r
sẽ ở định dạng chuỗi .
Thông tin được in bằng print_r
nhiều hơn ở định dạng có thể đọc được khi var_dump
in các giá trị thô.
print_r
Hàm có thể được sử dụng trong nhiều ngữ cảnh trong đó var_dump
chủ yếu có thể được sử dụng trong mục đích gỡ lỗi vì nó không thể trả về giá trị.
ob_start(); var_dump($var); $dump=ob_get_clean();
Tôi thực sự khuyên bạn nên đưa đầu ra của var_dump () hoặc printr vào một thẻ trước khi xuất ra trình duyệt.
print "<pre>";
print_r($dataset);
print "</pre>";
Sẽ cho một kết quả dễ đọc hơn.
Với các mảng lớn, print_r có thể hiển thị nhiều thông tin hơn là hữu ích. Bạn có thể cắt ngắn nó như thế này, hiển thị 2000 ký tự đầu tiên hoặc tuy nhiên nhiều ký tự bạn cần.
echo "<pre>" . substr(print_r($dataset, 1), 0, 2000) . "</pre>";
var_dump (): -
Thí dụ :-
<?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?>
đầu ra: -
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
}
in_r (): -
Thí dụ :-
<pre>
<?php
$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
print_r ($a);
?>
</pre>
Đầu ra: -
<pre>
Array
(
[a] => apple
[b] => banana
[c] => Array
(
[0] => x
[1] => y
[2] => z
)
)
</pre>
ob_start(); var_dump($var); $dump=ob_get_clean();
print_r () và var_dump () là các hàm gỡ lỗi mảng được sử dụng trong PHP cho mục đích gỡ lỗi. Hàm print_r () trả về các khóa mảng và các thành viên của nó dưới dạng Array ([key] = value) trong khi hàm var_dump () trả về danh sách mảng với các khóa mảng với kiểu dữ liệu và độ dài, ví dụ Array (mảng_length) {[0] = chuỗi (1) 'a'}.
Chúng ta có thể truyền nhiều tham số với var_dump như:
var_dump("array1",$array1,"array2",$array2);