<?php
class RegularExpression extends \RecursiveRegexIterator {
/**
* Get accept status.
*
* Match the current value or the current key (depends of the flag) against
* the regular expression. Please, see the \RegexIterator::accept method.
*
* Fix https://bugs.php.net/68128.
*
* @access public
* @return bool
*/
public function accept ( ) {
return true === $this->hasChildren()
|| true === parent::accept();
}
}
$rArrayIterator = new RecursiveArrayIterator(array('test1', array('tet3', 'test4', 'test5')));
$rRegexIterator = new RegularExpression($rArrayIterator, '/^test/',
RecursiveRegexIterator::ALL_MATCHES);
foreach ($rRegexIterator as $key1 => $value1) {
if ($rRegexIterator->hasChildren()) {
// print all children
echo "Children: ";
foreach ($rRegexIterator->getChildren() as $key => $value) {
echo $value . " ";
}
echo "\n";
} else {
echo "No children\n";
}
}
Deprecated: Return type of RegularExpression::accept() should either be compatible with RecursiveRegexIterator::accept(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /in/kmfOd on line 16
No children
Children:
Warning: Array to string conversion in /in/kmfOd on line 34
Array
Warning: Array to string conversion in /in/kmfOd on line 34
Array
Output for 8.0.0 - 8.0.30
No children
Children:
Warning: Array to string conversion in /in/kmfOd on line 34
Array
Warning: Array to string conversion in /in/kmfOd on line 34
Array
No children
Children:
Notice: Array to string conversion in /in/kmfOd on line 34
Array
Notice: Array to string conversion in /in/kmfOd on line 34
Array
Output for 7.3.32 - 7.3.33
No children
Children: Array Array
Output for 5.3.0 - 5.3.29, 5.4.0 - 5.4.45
No children
Children: test4 test5
Output for 5.2.0 - 5.2.17
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/kmfOd on line 3
No children
Children: test4 test5
Output for 5.0.0 - 5.0.5, 5.1.0 - 5.1.6
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/kmfOd on line 3
Fatal error: Class 'RecursiveRegexIterator' not found in /in/kmfOd on line 3
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/kmfOd on line 3
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/kmfOd on line 16
Process exited with code 255.
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/kmfOd on line 3
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/kmfOd on line 16
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /in/kmfOd on line 3
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/kmfOd on line 16
Process exited with code 255.