summaryrefslogtreecommitdiff
path: root/ext/standard/var.c
diff options
context:
space:
mode:
authorDerick Rethans <derick@php.net>2001-12-15 14:45:59 +0000
committerDerick Rethans <derick@php.net>2001-12-15 14:45:59 +0000
commit143df7de6b015c9c7811ee2bed522da56bab807d (patch)
tree24372bbdeb0aa6cebc608457667a52a959e5ccd2 /ext/standard/var.c
parent052d5fc85d074f82557c8bb538874a9d7ab5f854 (diff)
downloadphp-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.c29
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);
+ }
}
/* }}} */