xref: /PHP-7.4/ext/mbstring/tests/bug66964.phpt (revision f1d7e3ca)
1--TEST--
2Bug #66964 (mb_convert_variables() cannot detect recursion)
3--SKIPIF--
4<?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
5--FILE--
6<?php
7$a[] = &$a;
8var_dump(mb_convert_variables('utf-8', 'auto', $a));
9var_dump(mb_convert_variables('utf-8', 'utf-8', $a));
10
11unset($a);
12$a[] = '日本語テキスト';
13$a[] = '日本語テキスト';
14$a[] = '日本語テキスト';
15$a[] = '日本語テキスト';
16var_dump(mb_convert_variables('utf-8', 'utf-8', $a), $a);
17
18$a[] = &$a;
19var_dump(mb_convert_variables('utf-8', 'utf-8', $a), $a);
20
21?>
22--EXPECTF--
23Warning: mb_convert_variables(): %s on line %d
24bool(false)
25
26Warning: mb_convert_variables(): %s on line %d
27bool(false)
28string(5) "UTF-8"
29array(4) {
30  [0]=>
31  string(21) "日本語テキスト"
32  [1]=>
33  string(21) "日本語テキスト"
34  [2]=>
35  string(21) "日本語テキスト"
36  [3]=>
37  string(21) "日本語テキスト"
38}
39
40Warning: mb_convert_variables(): %s on line %d
41bool(false)
42array(5) {
43  [0]=>
44  string(21) "日本語テキスト"
45  [1]=>
46  string(21) "日本語テキスト"
47  [2]=>
48  string(21) "日本語テキスト"
49  [3]=>
50  string(21) "日本語テキスト"
51  [4]=>
52  &array(5) {
53    [0]=>
54    string(21) "日本語テキスト"
55    [1]=>
56    string(21) "日本語テキスト"
57    [2]=>
58    string(21) "日本語テキスト"
59    [3]=>
60    string(21) "日本語テキスト"
61    [4]=>
62    *RECURSION*
63  }
64}
65