PHP में var_dump() का output directly browser पर जाता है। इसे string variable में capture करने के लिए Output Buffering उपयोग करें।
मूल विधि: Output Buffering
<?php
function varDumpToString($var) {
ob_start(); // Output buffering शुरू करें
var_dump($var); // Output buffer में जाता है
$result = ob_get_clean(); // Buffer content प्राप्त करें और साफ करें
return $result;
}
// उपयोग
$data = ['first', 'second', 'third'];
$result = varDumpToString($data);
echo $result;
// Output:
// array(3) {
// [0]=>
// string(5) "first"
// [1]=>
// string(6) "second"
// [2]=>
// string(5) "third"
// }
उन्नत: Formatted Output के साथ
<?php
function varDumpToStringFormatted($var, $label = null) {
ob_start();
if ($label) {
echo "$label:\n";
}
var_dump($var);
$output = ob_get_clean();
// HTML context के लिए tags add करें
if (PHP_SAPI !== 'cli') {
$output = '' . htmlspecialchars($output) . '
';
}
return $output;
}
// Multiple variables
function dumpAll(...$vars) {
ob_start();
foreach ($vars as $i => $var) {
echo "--- Var $i ---\n";
var_dump($var);
}
return ob_get_clean();
}
विकल्प: var_export() (Parsable PHP Code)
<?php
$data = ['name' => 'अमित', 'age' => 25, 'active' => true];
// var_export returns valid PHP code
$code = var_export($data, true); // true = return string
echo $code;
// Output: array ( 'name' => 'अमित', 'age' => 25, 'active' => true, )
// eval() कर सकते हैं (सावधानी से)
$restored = eval("return $code;");
विकल्प: print_r() (Simpler Output)
<?php
function printRToString($var) {
ob_start();
print_r($var);
return ob_get_clean();
}
// या PHP 4.3+ में print_r का दूसरा पैरामीटर
$str = print_r($data, true); // true = return string
Comparison
| Function | Output Style | Returns Parsable Code | Types Shown |
|---|---|---|---|
var_dump() | Detailed (type + length) | नहीं | हाँ |
var_export() | PHP code | हाँ | हाँ |
print_r() | Human-readable | नहीं | सीमित |
json_encode() | JSON | JSON parsable | केवल public |
Debugging Helper Class
<?php
class Debug {
public static function dump($var, $label = null, $return = false) {
ob_start();
if ($label) echo "$label\n";
var_dump($var);
$output = ob_get_clean();
if ($return) return $output;
if (PHP_SAPI === 'cli') {
echo $output;
} else {
echo ''
. htmlspecialchars($output) . '';
}
}
public static function dumpDie($var, $label = null) {
self::dump($var, $label);
die;
}
}
// उपयोग
Debug::dump($user, 'User Object');
$logString = Debug::dump($data, 'API Response', true); // String के लिए
file_put_contents('debug.log', $logString, FILE_APPEND);