1--TEST--
2Bug #55871 (Interruption in substr_replace()) (PHP7)
3--FILE--
4<?php
5class test1 {
6	public function __toString() {
7		preg_match('//', '', $GLOBALS['my_var']);
8		return '';
9	}
10}
11
12class test2 {
13        public function __toString() {
14		$GLOBALS['my_var'] += 0x08048000;
15                return '';
16        }
17}
18
19class test3 {
20        public function __toString() {
21                $GLOBALS['my_var'] .= "AAAAAAAA";
22                return '';
23        }
24}
25
26$my_var = str_repeat('A', 40);
27$out = substr_replace(array(&$my_var), array(new test1), 40, 0);
28var_dump($out, $my_var);
29$my_var = str_repeat('A', 40);
30$out = substr_replace(array(&$my_var), array(new test2), 40, 0);
31var_dump($out, $my_var);
32$my_var = str_repeat('A', 40);
33$out = substr_replace(array(&$my_var), array(new test3), 40, 0);
34var_dump($out, $my_var);
35--EXPECTF--
36array(1) {
37  [0]=>
38  string(40) "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
39}
40array(1) {
41  [0]=>
42  string(0) ""
43}
44
45Warning: A non-numeric value encountered in %s on line %d
46array(1) {
47  [0]=>
48  string(40) "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
49}
50int(134512640)
51array(1) {
52  [0]=>
53  string(40) "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
54}
55string(48) "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
56