mirror of
https://github.com/php/php-src.git
synced 2025-08-18 15:08:55 +02:00

RFC: https://wiki.php.net/rfc/tostring_exceptions And convert some object to string conversion related recoverable fatal errors into Error exceptions. Improve exception safety of internal code performing string conversions.
40 lines
1.2 KiB
PHP
40 lines
1.2 KiB
PHP
--TEST--
|
|
Test preg_replace() function : error conditions - wrong arg types
|
|
--FILE--
|
|
<?php
|
|
/*
|
|
* proto string preg_replace(mixed regex, mixed replace, mixed subject [, int limit [, count]])
|
|
* Function is implemented in ext/pcre/php_pcre.c
|
|
*/
|
|
error_reporting(E_ALL&~E_NOTICE);
|
|
/*
|
|
* Testing how preg_replace reacts to being passed the wrong type of replacement argument
|
|
*/
|
|
echo "*** Testing preg_replace() : error conditions ***\n";
|
|
$regex = '/[a-zA-Z]/';
|
|
$replace = array('this is a string', array('this is', 'a subarray'),);
|
|
$subject = 'test';
|
|
foreach($replace as $value) {
|
|
print "\nArg value is: $value\n";
|
|
var_dump(preg_replace($regex, $value, $subject));
|
|
}
|
|
$value = new stdclass(); //Object
|
|
try {
|
|
var_dump(preg_replace($regex, $value, $subject));
|
|
} catch (Error $e) {
|
|
echo $e->getMessage(), "\n";
|
|
}
|
|
echo "Done";
|
|
?>
|
|
--EXPECTF--
|
|
*** Testing preg_replace() : error conditions ***
|
|
|
|
Arg value is: this is a string
|
|
string(64) "this is a stringthis is a stringthis is a stringthis is a string"
|
|
|
|
Arg value is: Array
|
|
|
|
Warning: preg_replace(): Parameter mismatch, pattern is a string while replacement is an array in %spreg_replace_error2.php on line %d
|
|
bool(false)
|
|
Object of class stdClass could not be converted to string
|
|
Done
|