使用 print_r 和 var_dump 输出对象

print_r 和 var_dump 也适用于对象,var_dump 是更详细的选择:

class the_hallo_class
{
    private $name = 'Donald Duck';
    public function say_hallo()
    {
        return 'Hallo ' . $this->name;
    }
}
$the_hallo_class = new the_hallo_class();
var_dump($the_hallo_class);exit();

输出:

object(the_hallo_class)#1 (1) {
  ["name":"the_hallo_class":private]=>
  string(11) "Donald Duck"
}

如果我们改用print_r,输出将是:

the_hallo_class Object
(
    [name:the_hallo_class:private] => Donald Duck
)
PHP:使用 Echo、Print、Print_r 和 Var_dump

在 PHP 中,我们有内置的方法来输出内容,例如 echo 和 print 这些方法都有自己的用例。

echo 是 PHP 中的一种语言结构,它允许我们就地输出数据。
在向浏览器发送标头之前不应使用它,因为这会导致标头已经发送...错误。
下面的示例显示了如何使用 echo 连接几个字符串和函数的输出:

echo 'Today\'s date is: ' . date('Y-m-d H:i:s') . ' and it is a wonderful day!' . PHP_EOL;

另一种使用逗号代替句点与 echo 连接字符串的方法,并且不适用于打印,如下所示:

echo 'Today\'s date: ', date('Y-m-d H:i:s'), PHP_EOL;

print 也是一种语言结构(不是函数),比 echo 稍慢,因此通常人们更喜欢使用 echo。
速度差异微不足道,有时我们可能仍想使用打印来代替。
Print 接受一个参数,并且总是返回“1”。

Print_r 和 Var_dump

除了前面提到的语言结构之外,我们还获得了诸如 print_r 和 var_dump 之类的函数。
就我个人而言,我只在调试某些东西时使用它们,因为它们在尝试了解我们正在处理的数据的性质时非常有用。

使用时,这些函数通常会跟在 exit 之后,以便将变量的内容直接输出到客户端,而不做其他任何事情。

Print_r 可用于以相当可读的纯文本格式输出数组的内容:

$the_duck_family = array('Scrooge McDuck', 'Donald Duck', 'Huey', 'Dewey', 'Louie');
print_r($the_duck_family);
exit(); //Exit before other code can execute

输出:

Array
(
    [0] => Scrooge McDuck
    [1] => Donald Duck
    [2] => Huey
    [3] => Dewey
    [4] => Louie
)

使用 var_dump 我们还将获得有关变量的数据类型和长度的信息:

var_dump($the_duck_family);
exit(); //Exit before other code can execute

输出:

array(5) {
  [0]=>
  string(14) "Scrooge McDuck"
  [1]=>
  string(11) "Donald Duck"
  [2]=>
  string(4) "Huey"
  [3]=>
  string(5) "Dewey"
  [4]=>
  string(5) "Louie"
}
日期:2020-06-02 22:15:40 来源:oir作者:oir