Heim  >  Artikel  >  Backend-Entwicklung  >  Über den Unterschied zwischen var_export, print_r und var_dump beim Debuggen in PHP

Über den Unterschied zwischen var_export, print_r und var_dump beim Debuggen in PHP

不言
不言Original
2018-06-19 16:38:181597Durchsuche

Dieser Artikel stellt hauptsächlich die Unterschiede zwischen var_export, print_r und var_dump Debugging in PHP vor. Er ist sehr gut und hat einen gewissen Referenzwert.

1 Typ

Code

$n = "test";
var_export($n);
print_r($n);
var_dump($n);
echo &#39;-----------------&#39; . &#39;<br/><br/>&#39;;
file_put_contents("index.log", var_export($n, true) . PHP_EOL, FILE_APPEND);
file_put_contents("index.log", print_r($n, true) . PHP_EOL, FILE_APPEND);
file_put_contents("index.log", var_dump($n) . PHP_EOL, FILE_APPEND);

Ergebnis

(1) Frontend:

'test' test /Users/xjnotxj/Program/PhpstormProject/colin/index.php:9:string 'test' (length=4) ----------------- / Benutzer /xjnotxj/Program/PhpstormProject/colin/index.php:15:string 'test' (length=4)

(2) index.log:

'test' Test

2. Ausgabearray

Code

$arr = array(
  "a" => 1,
  "b" => "222",
  "c" => 3,
);
var_export($arr);
print_r($arr);
var_dump($arr);
echo &#39;-----------------&#39; . &#39;<br/><br/>&#39;;
file_put_contents("index.log", var_export($arr, true) . PHP_EOL, FILE_APPEND);
file_put_contents("index.log", print_r($arr, true) . PHP_EOL, FILE_APPEND);
file_put_contents("index.log", var_dump($arr) . PHP_EOL, FILE_APPEND);

Ergebnis

( 1) Frontend:

array ( 'a' => 1, 'b' => '222', 'c' => 3, ) Array ( [a] = > 1 [b] => 222 [c] => 3) /Users/xjnotxj/Program/colin/index.php:13: array (size=3) 'a' => b' => string '222' (length=3) 'c' => index. php:19: array (size=3) 'a' => string '222' (length=3) 'c' => 🎜> (2) index.log:

array ( &#39;a&#39; => 1, &#39;b&#39; => &#39;222&#39;, &#39;c&#39; => 3, ) Array ( [a] => 1 [b] => 222 [c] => 3 )

3. Ausgabeobjekt

Code

class foo
{
  public $n;
  public function do_foo()
  {
    echo "Doing foo." . $this->n;
  }
}
$object = new foo;
var_export($object);
print_r($object);
var_dump($object);
echo &#39;-----------------&#39; . &#39;<br/><br/>&#39;;
file_put_contents("index.log", var_export($object, true) . PHP_EOL, FILE_APPEND);
file_put_contents("index.log", print_r($object, true) . PHP_EOL, FILE_APPEND);
file_put_contents("index.log", var_dump($object) . PHP_EOL, FILE_APPEND);

Ergebnis

(1) Frontend:

foo::__set_state(array( 'n' => NULL , ))

foo Object ( [n] => )
/Users/xjnotxj/Program/PhpstormProject/colin/index.php:19: object(foo)[1] public 'n' => null -- -------------- /Users/xjnotxj/Program/PhpstormProject/colin/index.php:25: object(foo)[1] public 'n' => null



(2) index.log:

foo::__set_state(array( &#39;n&#39; => NULL, )) foo Object ( [n] => )

Zusammenfassung:

1. Detaillierte Ausgabeergebnisse: var_export ≈ print_r < var_dump

2. Beim Debuggen muss beim Aufrufen von var_export, print_r, var_dump kein Echo hinzugefügt werden.

3. Wenn der zweite Parameter von var_export und print_r wahr ist, wird der Wert zurückgegeben. var_dump unterstützt nicht. Verwenden Sie daher var_dump nicht, wenn Sie file_put_contents zum Ausgeben des Debuggens verwenden.

4. Es wird empfohlen, var_dump direkt zum Debuggen in der Entwicklungsumgebung zu verwenden, um var_export oder print_r zum Debuggen in der Produktionsumgebung zu verwenden true, um den Ausgabewert zurückzugeben, anstatt ihn direkt an die Front-End-Einflusslinie auszugeben.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Verwenden Sie PHP, um die chinesische Pinyin-Konvertierung sowie die Gregorianische und Mondkalender-Konvertierung zu implementieren


Über PHPs move_uploaded_file( ) Funktionsanalyse von


Das obige ist der detaillierte Inhalt vonÜber den Unterschied zwischen var_export, print_r und var_dump beim Debuggen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn