mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00

If PREG_UNMATCHED_AS_NULL is used, make sure that unmatched capturing groups at the end are also set to null, rather than just those in the middle.
130 lines
1.7 KiB
PHP
130 lines
1.7 KiB
PHP
--TEST--
|
|
Support for flags in preg_replace_callback(_array)
|
|
--FILE--
|
|
<?php
|
|
|
|
var_dump(preg_replace_callback('/./', function($matches) {
|
|
var_dump($matches);
|
|
return $matches[0][0];
|
|
}, 'abc', -1, $count, PREG_OFFSET_CAPTURE));
|
|
echo "\n";
|
|
|
|
var_dump(preg_replace_callback_array(
|
|
['/./' => function($matches) {
|
|
var_dump($matches);
|
|
return $matches[0][0];
|
|
}],
|
|
'abc', -1, $count, PREG_OFFSET_CAPTURE)
|
|
);
|
|
echo "\n";
|
|
|
|
var_dump(preg_replace_callback('/(a)|(b)/', function($matches) {
|
|
var_dump($matches);
|
|
return $matches[0];
|
|
}, 'abc', -1, $count, PREG_UNMATCHED_AS_NULL));
|
|
echo "\n";
|
|
|
|
var_dump(preg_replace_callback_array(
|
|
['/(a)|(b)/' => function($matches) {
|
|
var_dump($matches);
|
|
return $matches[0];
|
|
}],
|
|
'abc', -1, $count, PREG_UNMATCHED_AS_NULL)
|
|
);
|
|
echo "\n";
|
|
|
|
?>
|
|
--EXPECT--
|
|
array(1) {
|
|
[0]=>
|
|
array(2) {
|
|
[0]=>
|
|
string(1) "a"
|
|
[1]=>
|
|
int(0)
|
|
}
|
|
}
|
|
array(1) {
|
|
[0]=>
|
|
array(2) {
|
|
[0]=>
|
|
string(1) "b"
|
|
[1]=>
|
|
int(1)
|
|
}
|
|
}
|
|
array(1) {
|
|
[0]=>
|
|
array(2) {
|
|
[0]=>
|
|
string(1) "c"
|
|
[1]=>
|
|
int(2)
|
|
}
|
|
}
|
|
string(3) "abc"
|
|
|
|
array(1) {
|
|
[0]=>
|
|
array(2) {
|
|
[0]=>
|
|
string(1) "a"
|
|
[1]=>
|
|
int(0)
|
|
}
|
|
}
|
|
array(1) {
|
|
[0]=>
|
|
array(2) {
|
|
[0]=>
|
|
string(1) "b"
|
|
[1]=>
|
|
int(1)
|
|
}
|
|
}
|
|
array(1) {
|
|
[0]=>
|
|
array(2) {
|
|
[0]=>
|
|
string(1) "c"
|
|
[1]=>
|
|
int(2)
|
|
}
|
|
}
|
|
string(3) "abc"
|
|
|
|
array(3) {
|
|
[0]=>
|
|
string(1) "a"
|
|
[1]=>
|
|
string(1) "a"
|
|
[2]=>
|
|
NULL
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(1) "b"
|
|
[1]=>
|
|
NULL
|
|
[2]=>
|
|
string(1) "b"
|
|
}
|
|
string(3) "abc"
|
|
|
|
array(3) {
|
|
[0]=>
|
|
string(1) "a"
|
|
[1]=>
|
|
string(1) "a"
|
|
[2]=>
|
|
NULL
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(1) "b"
|
|
[1]=>
|
|
NULL
|
|
[2]=>
|
|
string(1) "b"
|
|
}
|
|
string(3) "abc"
|