How to capture the result of var_dump to a string in PHP?

In PHP, you can capture the result of var_dump() to a string using output buffering functions. This is useful when you need to store or manipulate the debug output instead of displaying it directly.

Using Output Buffering

The ob_start() and ob_get_clean() functions allow you to capture output that would normally be sent to the browser −

<?php
    function varDumpToString($var) {
        ob_start();
        var_dump($var);
        $result = ob_get_clean();
        return $result;
    }
    
    // Usage
    $data = array('first', 'second', 'third');
    $result = varDumpToString($data);
    echo $result;
?>
array(3) {
  [0]=>
  string(5) "first"
  [1]=>
  string(6) "second"
  [2]=>
  string(5) "third"
}

How It Works

The output buffering process works in three steps:

  • ob_start() − Starts output buffering, capturing all output instead of sending it to the browser
  • var_dump() − Outputs the variable information to the buffer
  • ob_get_clean() − Gets the buffer contents and clears the buffer

Alternative Example

You can also capture var_dump() output for multiple variables −

<?php
    ob_start();
    var_dump("Hello World");
    var_dump(42);
    var_dump(true);
    $output = ob_get_clean();
    
    echo "Captured output:<br>" . $output;
?>
Captured output:
string(11) "Hello World"
int(42)
bool(true)

Conclusion

Output buffering with ob_start() and ob_get_clean() provides a clean way to capture var_dump() output as a string. This technique is particularly useful for logging, testing, or when you need to process debug information programmatically.

Updated on: 2026-03-15T08:26:32+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements