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());

它會將所有已定義的變數轉儲到瀏覽器。

廣告