mirror of
https://github.com/php/php-src.git
synced 2024-09-21 18:07:23 +00:00
Use typed property in RegexIterator
This commit is contained in:
parent
8c97fc88f3
commit
a92f5cbe32
@ -1884,8 +1884,9 @@ PHP_METHOD(RegexIterator, accept)
|
||||
case REGIT_MODE_REPLACE: {
|
||||
zval *replacement = zend_read_property(intern->std.ce, Z_OBJ_P(ZEND_THIS), "replacement", sizeof("replacement")-1, 1, &rv);
|
||||
zend_string *replacement_str = zval_try_get_string(replacement);
|
||||
|
||||
if (UNEXPECTED(!replacement_str)) {
|
||||
return;
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
result = php_pcre_replace_impl(intern->u.regex.pce, subject, ZSTR_VAL(subject), ZSTR_LEN(subject), replacement_str, -1, &count);
|
||||
|
@ -320,8 +320,7 @@ class InfiniteIterator extends IteratorIterator
|
||||
|
||||
class RegexIterator extends FilterIterator
|
||||
{
|
||||
/** @var string|null */
|
||||
public $replacement;
|
||||
public ?string $replacement = null;
|
||||
|
||||
public function __construct(Iterator $iterator, string $pattern, int $mode = self::MATCH, int $flags = 0, int $pregFlags = 0) {}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* This is a generated file, edit the .stub.php file instead.
|
||||
* Stub hash: a2f4e91b58d1af4954a2665a8fac10a4e0d9e31d */
|
||||
* Stub hash: faf45a8d4e731dccfc161514f233a78d98b716e9 */
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_EmptyIterator_current, 0, 0, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
@ -784,7 +784,7 @@ static zend_class_entry *register_class_RegexIterator(zend_class_entry *class_en
|
||||
zval property_replacement_default_value;
|
||||
ZVAL_NULL(&property_replacement_default_value);
|
||||
zend_string *property_replacement_name = zend_string_init("replacement", sizeof("replacement") - 1, 1);
|
||||
zend_declare_property_ex(class_entry, property_replacement_name, &property_replacement_default_value, ZEND_ACC_PUBLIC, NULL);
|
||||
zend_declare_typed_property(class_entry, property_replacement_name, &property_replacement_default_value, ZEND_ACC_PUBLIC, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_STRING|MAY_BE_NULL));
|
||||
zend_string_release(property_replacement_name);
|
||||
|
||||
return class_entry;
|
||||
|
@ -11,7 +11,7 @@ class foo extends ArrayIterator {
|
||||
|
||||
$h = new foo;
|
||||
$i = new RegexIterator($h, '/^test(.*)/', RegexIterator::REPLACE);
|
||||
$i->replacement = 42;
|
||||
$i->replacement = "42";
|
||||
var_dump($i->replacement);
|
||||
foreach ($i as $name=>$value) {
|
||||
var_dump($name, $value);
|
||||
@ -19,7 +19,7 @@ foreach ($i as $name=>$value) {
|
||||
var_dump($i->replacement);
|
||||
?>
|
||||
--EXPECT--
|
||||
int(42)
|
||||
string(2) "42"
|
||||
string(5) "test3"
|
||||
string(2) "42"
|
||||
int(42)
|
||||
string(2) "42"
|
||||
|
Loading…
Reference in New Issue
Block a user