就吐出字符串数组而言,var_dump()和print_r()之间有什么区别?
var_dump()
print_r()
var_dump()会告诉你东西的类型以及里面有什么。
你会得到=> (string)"var" 例子在这里。
(string)"var"
print_r()只输出内容。
将输出=> "var" 例子在这里。
"var"
var_dump显示关于对象/变量的结构化信息。这包括类型和值。像print_r一样,数组被递归并缩进。
var_dump
print_r
print_r显示关于值的人类可读的信息,其格式为数组和对象的键和元素。
最需要注意的是var_dump将输出类型和值,而print_r则不会。
var_dump函数显示变量/表达式的结构化信息,包括它的类型和价值。数组用缩进的值递归地探索以显示结构。它还显示了哪些数组值和对象属性是引用。
print_r()以人类可读的方式显示关于变量的信息。数组值将以显示键和元素的格式显示。类似的符号用于对象。
例子:
$obj = (object) array('qualitypoint', 'technologies', 'India');
var_dump($obj)将在屏幕上显示以下输出。
var_dump($obj)
object(stdClass)#1 (3) { [0]=> string(12) "qualitypoint" [1]=> string(12) "technologies" [2]=> string(5) "India" }
并且,print_r($obj)将在屏幕上显示下面的输出。
print_r($obj)
stdClass Object ( [0] => qualitypoint [1] => technologies [2] => India )
更多信息
如果你问什么时候应该使用什么,我通常使用print_r()来显示值,而var_dump()用于在变量类型出现问题时。
通常,print_r( )输出更好,更简洁,更容易阅读,也就是更易于人类阅读,但不能显示数据类型。
print_r( )
使用print_r(),你还可以将输出存储到一个变量中:
$output = print_r($array, true);
这是var_dump()不能做到的。然而var_dump()可以显示数据类型。
var_dump和print_r之间有显著差异
这两个函数转储关于变量的信息,但var_dump将被转储的多个参数,其中print_r可以取两个参数,其中第一个参数是你想要转储的变量,第二个参数是一个布尔值。
var_dump不能返回任何值,它只能转储/打印值,如果我们将print_r的第二个参数设置为真正的,则print_r可以返回变量信息。print_r的返回值将是字符串格式。
print_r打印的信息更具有可读的格式,而var_dump打印的是原始值。
print_r函数可以在许多上下文中使用,其中var_dump可以主要用于调试目的,因为它不能返回值。
var_dump($var)显示深入的细节,通过提供额外的细节
var_dump($var)
我还建议在输出到浏览器时,将var_dump()或printr的输出放入精准医疗标记中。
print "<pre>"; print_r($dataset); print "</pre>";
将给出更可读的结果。
对于大型数组,print_r显示的信息可能远远超出有用的范围。您可以像这样截断它,显示前2000个字符或任何您需要的字符。
echo "<pre>" . substr(print_r($dataset, 1), 0, 2000) . "</pre>";
print_r()和var_dump()是PHP中用于调试目的的数组调试函数。print_r()函数返回数组键及其成员为array ([key] = value),而var_dump()函数返回数组列表及其数据类型和长度的数组键,例如array (array_length){[0] = string(1)'a'}。
var_dump (): -
例子:-
<?php $a = array(1, 2, array("a", "b", "c")); var_dump($a); ?>
输出:
array(3) { [0]=> int(1) [1]=> int(2) [2]=> array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" } }
print_r (): -
<pre> <?php $a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z')); print_r ($a); ?> </pre>
<pre> Array ( [a] => apple [b] => banana [c] => Array ( [0] => x [1] => y [2] => z ) ) </pre>
var_dump("array1",$array1,"array2",$array2);
这太简单了。var_dump ()函数显示变量/表达式的结构化信息,包括其类型和值。而print_r ()以人类可读的方式显示关于变量的信息。
例子:假设我们有以下数组,我们想显示它的内容。
$arr = array ('xyz', false, true, 99, array('50'));
Array ( [0] => xyz [1] => [2] => 1 [3] => 99 [4] => Array ( [0] => 50 ) )
array(5) { [0]=> string(3) "xyz" [1]=> bool(false) [2]=> bool(true) [3]=> int(100) [4]=> array(1) { [0]=> string(2) "50" } }
更多详细信息:https://stackhowto.com/how-to-display-php-variable-values-with-echo-print_r-and-var_dump/
function test_dump (...$params) { $file_test_dump = 'test_dump.log'; $backtrace = debug_backtrace(0, 3); $caller_file = $backtrace[0]['file']); $caller_function = $backtrace[1]['function']; $caller_line = $backtrace[0]['line']; if (empty($params)) { file_put_contents ($file_test_dump, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" , FILE_APPEND); file_put_contents ($file_test_dump, '!!!!!! ' . date ("[Y-m-d H:i:s:u]", time()) . " - FILE: {$caller_file} | FUNCTION: {$caller_function} | LINE: {$caller_line} !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! \n\n" , FILE_APPEND); file_put_contents ($file_test_dump, "!!! No parameter given !!! \n\n" , FILE_APPEND); return; } // --- get source file --- $source_file = file($backtrace[0]['file']); // --- get line of source file and pre filter with regex --- preg_match ('~\(([^*]*)\)~', $source_file [intval($backtrace[0]['line']) - 1], $parameter_line); $parameter_line_filtered = str_replace(" ", "", $parameter_line [1]); // put parameter names into array $params_names = explode(',', $parameter_line_filtered); // --- OUTPUT ---- file_put_contents ($file_test_dump, "#######################################################################################################################################################################################################################\n" , FILE_APPEND); file_put_contents ($file_test_dump, '### ' . date ("[Y-m-d H:i:s:u]", time()) . " - FILE: {$caller_file} | FUNCTION: {$caller_function} | LINE: {$caller_line} ### \n\n" , FILE_APPEND); $i = 0; foreach ($params as $param) { $i++; file_put_contents ($file_test_dump, " --- Parameter " . $i . ': ' . $params_names[$i - 1] . " --------------------------------------------------------------------------------------------------------------------------\n", FILE_APPEND); if ( is_array($param) || is_object($param) || is_bool($param) ) { ob_start(); var_dump($param); file_put_contents ($file_test_dump, ob_get_contents() . "\n\n", FILE_APPEND); ob_end_clean(); } else { file_put_contents ($file_test_dump, $param . "\n\n", FILE_APPEND); } } file_put_contents ($file_test_dump, "\n\n", FILE_APPEND); }