]> granicus.if.org Git - php/commitdiff
Fixed the wrong logic in ini_get_all() function.
authorfoobar <sniper@php.net>
Tue, 13 Nov 2001 00:37:49 +0000 (00:37 +0000)
committerfoobar <sniper@php.net>
Tue, 13 Nov 2001 00:37:49 +0000 (00:37 +0000)
Now it behaves same as how phpinfo() outputs the ini entries.

If there is a local value, then the global one is the 'original one' if
there is such. Otherwise global value is same as local. :)

ext/standard/basic_functions.c

index c70bff2a2ed4ace78f3738b3c590d67aef1a3770..7517cb59b0ad9cab3b1ba21da5d76f14df488940 100644 (file)
@@ -2229,14 +2229,16 @@ static int php_ini_get_option(zend_ini_entry *ini_entry, int num_args, va_list a
                MAKE_STD_ZVAL(option);
                array_init(option);
 
-               if(ini_entry->value) {
+               if(ini_entry->orig_value) {
+                       add_assoc_stringl(option, "global_value", ini_entry->orig_value, ini_entry->orig_value_length, 1);
+               } else if (ini_entry->value) {
                        add_assoc_stringl(option, "global_value", ini_entry->value, ini_entry->value_length, 1);
                } else {
                        add_assoc_null(option, "global_value");
                }
 
-               if(ini_entry->orig_value) {
-                       add_assoc_stringl(option, "local_value", ini_entry->orig_value, ini_entry->orig_value_length, 1);
+               if(ini_entry->value) {
+                       add_assoc_stringl(option, "local_value", ini_entry->value, ini_entry->value_length, 1);
                } else {
                        add_assoc_null(option, "local_value");
                }