PHP var_dump() 函数



PHP 中的内置函数之一是 var_dump() 函数。此函数显示结构化信息,例如一个或多个作为参数传递给此函数的表达式的类型和值。

var_dump(mixed $value, mixed ...$values): void

此函数在输出中返回对象的所有公共、私有和受保护属性。有关数组和对象的转储信息会正确缩进以显示递归结构。

对于内置的整数、浮点数和布尔变量,var_dump() 函数显示参数变量的类型和值。

示例 1

例如,这是一个整数变量:

<?php
   $x = 10;  
   var_dump ($x);
?>

转储信息如下所示:

int(10)

示例 2

让我们看看它对浮点变量的行为:

<?php
   $x = 10.25;  
   var_dump ($x);
?>

var_dump() 函数返回以下输出

float(10.25)

示例 3

如果表达式是布尔值:

<?php
   $x = true;  
   var_dump ($x);
?>

它将产生以下输出

bool(true)

示例 4

对于字符串变量,var_dump() 函数还会返回字符串的长度。

<?php
   $x = "Hello World"; 
   var_dump ($x);  
?>

它将产生以下输出

string(11) "Hello World"

在这里,我们可以使用<pre> HTML 标签来显示预格式化的文本。<pre> 元素中的文本以等宽字体显示,并且文本保留空格和换行符。

<?php
   echo "<pre>";
   $x = "Hello World"; 
   var_dump ($x);  
   echo "</pre>"
?>

它将产生以下输出

string(11) "Hello World"

示例 5 - 使用 var_dump() 研究数组结构

var_dump() 函数可用于研究数组结构。在以下示例中,我们有一个数组,其中数组的一个元素是另一个数组。换句话说,我们有一个嵌套数组的情况。

<?php
   $x = array("Hello", false, 99.99, array(10, 20,30));
   var_dump ($x);
?>

它将产生以下输出

array(4) {
  [0]=>
  string(5) "Hello"
  [1]=>
  bool(false)
  [2]=>
  float(99.99)
  [3]=>
  array(3) {
    [0]=>
    int(10)
    [1]=>
    int(20)
    [2]=>
    int(30)
  }
}

示例 6

由于"$x"在前面的示例中是索引数组,因此会转储从“0”开始的索引及其值。如果数组是关联数组,则会转储键值对信息。

<?php
   $x = array(
      "Hello", false, 99.99, 
      array(1=>10, 2=>20,3=>30)
   );
   var_dump($x);
?>

在这里,您将获得以下输出

array(4) {
  [0]=>
  string(5) "Hello"
  [1]=>
  bool(false)
  [2]=>
  float(99.99)
  [3]=>
  array(3) {
    [1]=>
    int(10)
    [2]=>
    int(20)
    [3]=>
    int(30)
  }
}

当您使用 var_dump() 显示数组值时,无需使用结束标签“</pre>”。

示例 7

var_dump() 函数还可以揭示表示类的对象的属性。在以下示例中,我们声明了一个 Point 类,它有两个私有属性“x”和“y”。类构造函数使用传递给它的参数初始化对象“p”。

var_dump() 函数提供有关对象属性及其对应值的信息。

<?php  
   class Point {
      private int $x;
      private int $y;

      public function __construct(int $x, int $y = 0) {
         $this->x = $x;
         $this->y = $y;
      }
   }

   $p = new Point(4, 5);
   var_dump($p) 
?>

它将产生以下输出

object(Point)#1 (2) {
  ["x":"Point":private]=>
  int(4)
  ["y":"Point":private]=>
  int(5)
}

PHP 中还有一个类似的内置函数用于生成转储,名为get_defined_vars()

var_dump(get_defined_vars());

它会将所有已定义的变量转储到浏览器。

广告