php var_dump()vs print_r()

ina*_*ina 292 php arrays

是什么区别var_dump(),并print_r()在吐出一个数组作为字符串的条款?

Sar*_*raz 347

var_dump函数显示有关变量/表达式的结构化信息,包括其类型.递归地探索数组,其中值缩进以显示结构.它还显示哪些数组值和对象属性是引用.

print_r()约的方式,是由人类可读的可变显示的信息.数组值将以显示元素的格式显示.类似的符号用于对象.

例:

$obj = (object) array('qualitypoint', 'technologies', 'India');
Run Code Online (Sandbox Code Playgroud)

var_dump($obj) 将在屏幕下方显示输出.

object(stdClass)#1 (3) {
 [0]=> string(12) "qualitypoint"
 [1]=> string(12) "technologies"
 [2]=> string(5) "India"
}
Run Code Online (Sandbox Code Playgroud)

并且,print_r($obj)将在屏幕下方显示输出.

stdClass Object ( 
 [0] => qualitypoint
 [1] => technologies
 [2] => India
)
Run Code Online (Sandbox Code Playgroud)

更多信息

  • print_r(null)将不返回任何内容,因为var_dump(null)返回NULL,这在调试时很有用 (72认同)
  • 你能用'var_export'来扩展答案吗? (7认同)
  • @Julian仅在安装xdebug时使用 (3认同)

gil*_*ero 54

通常, print_r( )输出更好,更简洁,更容易阅读,也更人性化但不能显示数据类型.

随着print_r()你也可以存储输出到一个变量:

$output = print_r($array, true);
Run Code Online (Sandbox Code Playgroud)

哪个var_dump()做不到.然而,var_dump()可以显示数据类型.

  • var_dump()可以存储在一个变量中,虽然它有点丑陋:http://stackoverflow.com/questions/139474/how-can-i-capture-the-result-of-var-dump-to-a-string (9认同)
  • 如果你需要储蓄,你也可以'兄弟'[var_export()](http://www.php.net/manual/en/function.var-export.php) (7认同)

Dav*_*ell 20

var_dump() 将向您展示物品的类型以及物品的内容.

所以你会得到=> (string)"var" 示例在这里.

print_r() 只会输出内容.

输出=> "var" 示例在这里.

  • 我认为更好的例子是`var_dump(0.0);`输出`float(0)`vs`print_r(0.0);`输出`0`(因此导致可能的类型混淆)... (11认同)

Dan*_*mmo 13

如果你问什么时候应该使用什么,我通常print_r()用于显示值以及var_dump()何时遇到变量类型的问题.


Jos*_*h K 8

var_dump显示有关对象/变量的结构化信息.这包括类型和值.像print_r数组一样递归并缩进.

print_r显示人类可读关于与格式呈现为数组和对象键和元素的值的信息.

最值得注意的是var_dump输出类型和值,而print_r不是.


tho*_*mas 6

It's too simple. The var_dump() function displays structured information about variables/expressions including its type and value. Whereas The print_r() displays information about a variable in a way that's readable by humans.

Example: Say we have got the following array and we want to display its contents.

$arr = array ('xyz', false, true, 99, array('50'));
Run Code Online (Sandbox Code Playgroud)

print_r() function - Displays human-readable output

Array
(
    [0] => xyz
    [1] =>
    [2] => 1
    [3] => 99
    [4] => Array
        (
            [0] => 50
        )
)
Run Code Online (Sandbox Code Playgroud)

var_dump() function - Displays values and types

array(5) {
  [0]=>
  string(3) "xyz"
  [1]=>
  bool(false)
  [2]=>
  bool(true)
  [3]=>
  int(100)
  [4]=>
  array(1) {
    [0]=>
    string(2) "50"
  }
}
Run Code Online (Sandbox Code Playgroud)

For more details: https://stackhowto.com/how-to-display-php-variable-values-with-echo-print_r-and-var_dump/


Aks*_*ale 5

var_dump和之间存在显着差异print_r

这两个函数都转储有关变量的信息,但转储了var_dump多个将要转储的参数,其中print_r可以取两个参数,其中第一个参数是要转储的变量,第二个参数是布尔值.

var_dump不能返回任何值只能转储/打印值,如果我们将第二个参数设置print_rtrue,则print_r可以返回变量信息.返回值print_r将采用字符串格式.

打印的信息print_r更多是可读格式,其中var_dump打印原始值.

print_r函数可以在许多上下文中var_dump使用,因为它可以用于调试目的,主要是因为它不能返回值.