print_r(array('name'=> 'bob', 'age' => 20, 'sex' => 'man'));

然后 :
Array {
    [name] => bob,
    [age] => 20,
    [sex] => man }

var_dump(array('name' => 'bob', 'age' => 20));

将显示:
array(2) {
    ['name'] => string(3) 'bob'
    ['age'] => int(20) }
var_dump非常适合调试,并且比print_r更好。但是为什么print_r仍然存在?或print_r有一些我不知道的优势

最佳答案

print_rvar_dump之间的最大区别是print_r带有可选的第二个参数,它允许您将内容存储在变量中。例如:

$debug = print_r($someArray, true);
echo $debug;

(请注意,这也可以使用output control functions对于var_dump实现)

此外,print_r可读性远优于var_dump:

var_dump:
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:
Array
(
    [a] => apple
    [b] => banana
    [c] => Array
        (
            [0] => x
            [1] => y
            [2] => z
        )
)

09-12 16:02