diff options
author | Derick Rethans <derick@php.net> | 2001-12-15 14:45:59 +0000 |
---|---|---|
committer | Derick Rethans <derick@php.net> | 2001-12-15 14:45:59 +0000 |
commit | 143df7de6b015c9c7811ee2bed522da56bab807d (patch) | |
tree | 24372bbdeb0aa6cebc608457667a52a959e5ccd2 /ext/standard/var.c | |
parent | 052d5fc85d074f82557c8bb538874a9d7ab5f854 (diff) | |
download | php-git-143df7de6b015c9c7811ee2bed522da56bab807d.tar.gz |
- Added a second parameter to var_export which makes the function return
the variable representation in a string.
Diffstat (limited to 'ext/standard/var.c')
-rw-r--r-- | ext/standard/var.c | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/ext/standard/var.c b/ext/standard/var.c index 56e7e9bc96..0f9a41e25e 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -202,26 +202,27 @@ head_done: /* }}} */ -/* {{{ proto void var_export(mixed var) - Dumps a string representation of variable to output */ +/* {{{ proto mixed var_export(mixed var [, int return]) + Outputs or returns a string representation of avariable */ PHP_FUNCTION(var_export) { - zval ***args; - int argc; - int i; + zval *var; + long i = 0; - argc = ZEND_NUM_ARGS(); - - args = (zval ***)emalloc(argc * sizeof(zval **)); - if (ZEND_NUM_ARGS() == 0 || zend_get_parameters_array_ex(argc, args) == FAILURE) { - efree(args); - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z|l", &var, &i) == FAILURE) { + return; } - for (i=0; i<argc; i++) - php_var_export(args[i], 1 TSRMLS_CC); + if (i) { + php_start_ob_buffer (NULL, 0); + } - efree(args); + php_var_export(&var, 1 TSRMLS_CC); + + if (i) { + php_ob_get_buffer (return_value); + php_end_ob_buffer (0, 0); + } } /* }}} */ |