PHP Pro Tip IV: Spara undan resultat av var_dump i en sträng

var_dump() är PHP-utvecklarens bästa vän för att kika in i en variabel och se exakt vad den innehåller (objekt, sträng eller vad det nu är) – om man nu inte använder exempelvis Xdebug.

Men låt oss säga att man vill spara undan datan i en sträng, och inte bara dumpa ut den så fort som funktionen var_dump() körs – kanske för att undvika "Cannot modify header information - headers already sent"" – hur gör man då? Jo, som följande:

$variable = array(
    'value1' => 1,
    'value2' => 2,
    'value3' => 3
);

// Startat "output buffer"
ob_start(); 
// Dumpar ut värdet av $variable
var_dump($variable); 
// $result = datan i bufferten, och rensar upp
$result = ob_get_clean(); 

// Gör en massa andra saker

// Eka ut datan
echo("<pre>" . $result . "</pre>");

// Resultat
array(3) {
  ["value1"]=>
  int(1)
  ["value2"]=>
  int(2)
  ["value3"]=>
  int(3)
}

Detta ska förmodligen dock användas sparsamt då det både blir förvirrande med allt för många förekomster i koden (när man inte har koll på om output bufferten är igång eller inte etc.) samt att påverkar prestandan något. Men för att underlätta jakten på buggar – varför inte?