PHP - var_dump() 函数



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


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

此函数在输出中返回对象的所有 public、private 和 protected 属性。有关数组和对象的转储信息已正确缩进以显示递归结构。

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

示例 1

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


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

转储信息如下 -

int(10)

示例 2

让我们看看它对 float 变量的行为 -


<?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"

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


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

它将产生以下输出 -

string(11) "Hello World"

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

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


<?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() 函数还可以显示表示类的对象的属性。在下面的示例中,我们声明了一个具有两个私有属性 “x” 和 “y” 的 Point 类。类构造函数使用传递给它的参数初始化对象 “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 中有一个类似的内置函数用于生成 dump,名为 get_defined_vars()


 var_dump(get_defined_vars());

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