diff options
-rw-r--r-- | main/php_variables.c | 4 | ||||
-rw-r--r-- | tests/basic/011.phpt | 7 | ||||
-rwxr-xr-x | tests/basic/bug29971.phpt | 1 |
3 files changed, 3 insertions, 9 deletions
diff --git a/main/php_variables.c b/main/php_variables.c index 8e2bb87f30..2bfe566a1a 100644 --- a/main/php_variables.c +++ b/main/php_variables.c @@ -639,7 +639,7 @@ static void php_build_argv(char *s, zval *track_vars_array TSRMLS_DC) int count = 0; char *ss, *space; - if (!(SG(request_info).argc || track_vars_array)) { + if (!(SG(request_info).argc || (s && *s))) { return; } @@ -696,7 +696,7 @@ static void php_build_argv(char *s, zval *track_vars_array TSRMLS_DC) argc->is_ref = 0; argc->refcount = 0; - if (SG(request_info).argc) { + if (Z_LVAL_P(argc)) { arr->refcount++; argc->refcount++; zend_hash_update(&EG(symbol_table), "argv", sizeof("argv"), &arr, sizeof(zval *), NULL); diff --git a/tests/basic/011.phpt b/tests/basic/011.phpt index 34eed7915a..14c0542ec1 100644 --- a/tests/basic/011.phpt +++ b/tests/basic/011.phpt @@ -8,16 +8,9 @@ register_argc_argv=1 ab+cd+ef+123+test --FILE-- <?php - -if (!ini_get('register_globals')) { - $argc = $_SERVER['argc']; - $argv = $_SERVER['argv']; -} - for ($i=0; $i<$argc; $i++) { echo "$i: ".$argv[$i]."\n"; } - ?> --EXPECT-- 0: ab diff --git a/tests/basic/bug29971.phpt b/tests/basic/bug29971.phpt index 1d2bc0b1c6..fdbee8fd46 100755 --- a/tests/basic/bug29971.phpt +++ b/tests/basic/bug29971.phpt @@ -2,6 +2,7 @@ Bug #29971 (variables_order behaviour) --INI-- variables_order=GPC +register_argc_argv=0 --FILE-- <?php var_dump($_ENV,$_SERVER); |