One particular error case was returning the argument without
casting to string.
if (!zend_is_callable(replace, 0, &callback_name)) {
php_error_docref(NULL, E_WARNING, "Requires argument 2, '%s', to be a valid callback", ZSTR_VAL(callback_name));
zend_string_release(callback_name);
- ZVAL_COPY(return_value, subject);
+ ZVAL_STR(return_value, zval_get_string(subject));
return;
}
zend_string_release(callback_name);
NULL
Warning: preg_replace_callback(): Requires argument 2, '2', to be a valid callback in %s on line %d
-int(3)
+string(1) "3"
Warning: preg_replace_callback(): Requires argument 2, '2', to be a valid callback in %s on line %d
-int(3)
+string(1) "3"
Warning: preg_replace_callback(): Requires argument 2, '2', to be a valid callback in %s on line %d
-int(3)
+string(1) "3"
Warning: preg_replace_callback() expects parameter 4 to be integer, string given in %s on line %d
NULL