File tree 5 files changed +32
-9
lines changed
standard/tests/general_functions
5 files changed +32
-9
lines changed Original file line number Diff line number Diff line change @@ -184,6 +184,9 @@ zend_result zend_optimizer_eval_special_func_call(
184
184
if (zend_string_equals_literal (name , "ini_get" )) {
185
185
zend_ini_entry * ini_entry = zend_hash_find_ptr (EG (ini_directives ), arg );
186
186
if (!ini_entry ) {
187
+ if (PG (enable_dl )) {
188
+ return FAILURE ;
189
+ }
187
190
ZVAL_FALSE (result );
188
191
} else if (ini_entry -> modifiable != ZEND_INI_SYSTEM ) {
189
192
return FAILURE ;
Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ Bug GH-8466: ini_get() is optimized out when the option does not exist during compilation
3
+ --SKIPIF--
4
+ <?php include dirname (__DIR__ , 2 ) . "/dl_test/tests/skip.inc " ; ?>
5
+ --FILE--
6
+ <?php
7
+
8
+ if (extension_loaded ('dl_test ' )) {
9
+ exit ('Error: dl_test is already loaded ' );
10
+ }
11
+
12
+ if (PHP_OS_FAMILY === 'Windows ' ) {
13
+ $ loaded = dl ('php_dl_test.dll ' );
14
+ } else {
15
+ $ loaded = dl ('dl_test.so ' );
16
+ }
17
+
18
+ var_dump ($ loaded );
19
+
20
+ var_dump (ini_get ('dl_test.long ' ));
21
+ --EXPECT --
22
+ bool (true )
23
+ string (1 ) "0 "
Original file line number Diff line number Diff line change @@ -20,9 +20,8 @@ var_dump($loaded);
20
20
dl_test_test1 ();
21
21
var_dump (dl_test_test2 ("World! " ));
22
22
23
- // ini_get() gets optimized out, so we use ini_get_all() here
24
- var_dump (ini_get_all ()["dl_test.long " ]["local_value " ]);
25
- var_dump (ini_get_all ()["dl_test.string " ]["local_value " ]);
23
+ var_dump (ini_get ("dl_test.long " ));
24
+ var_dump (ini_get ("dl_test.string " ));
26
25
27
26
echo "OK \n" ;
28
27
--EXPECT --
Original file line number Diff line number Diff line change @@ -21,9 +21,8 @@ var_dump($loaded);
21
21
dl_test_test1 ();
22
22
var_dump (dl_test_test2 ("World! " ));
23
23
24
- // ini_get() gets optimized out, so we use ini_get_all() here
25
- var_dump (ini_get_all ()["dl_test.long " ]["local_value " ]);
26
- var_dump (ini_get_all ()["dl_test.string " ]["local_value " ]);
24
+ var_dump (ini_get ("dl_test.long " ));
25
+ var_dump (ini_get ("dl_test.string " ));
27
26
28
27
echo "OK \n" ;
29
28
--EXPECT --
Original file line number Diff line number Diff line change @@ -22,9 +22,8 @@ var_dump(dl_test_test2("World!"));
22
22
ini_set ("dl_test.long " , "1 " );
23
23
ini_set ("dl_test.string " , "world " );
24
24
25
- // ini_get() gets optimized out, so we use ini_get_all() here
26
- var_dump (ini_get_all ()["dl_test.long " ]["local_value " ]);
27
- var_dump (ini_get_all ()["dl_test.string " ]["local_value " ]);
25
+ var_dump (ini_get ("dl_test.long " ));
26
+ var_dump (ini_get ("dl_test.string " ));
28
27
29
28
echo "OK \n" ;
30
29
--EXPECT --
You can’t perform that action at this time.
0 commit comments