PHP Pro Tip IV: Spara undan resultat av var_dump i en sträng
Marcus Olsson,
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:
1$variable = array(2 'value1' => 1,3 'value2' => 2,4 'value3' => 35);67// Startat "output buffer"8ob_start();9// Dumpar ut värdet av $variable10var_dump($variable);11// $result = datan i bufferten, och rensar upp12$result = ob_get_clean();1314// Gör en massa andra saker1516// Eka ut datan17echo("<pre>" . $result . "</pre>");1819// Resultat20array(3) {21 ["value1"]=>22 int(1)23 ["value2"]=>24 int(2)25 ["value3"]=>26 int(3)27}
1$variable = array(2 'value1' => 1,3 'value2' => 2,4 'value3' => 35);67// Startat "output buffer"8ob_start();9// Dumpar ut värdet av $variable10var_dump($variable);11// $result = datan i bufferten, och rensar upp12$result = ob_get_clean();1314// Gör en massa andra saker1516// Eka ut datan17echo("<pre>" . $result . "</pre>");1819// Resultat20array(3) {21 ["value1"]=>22 int(1)23 ["value2"]=>24 int(2)25 ["value3"]=>26 int(3)27}
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?