函数:RegexIterator::setMode()
适用版本:PHP 5 >= 5.2.0, PHP 7
用法:RegexIterator::setMode(int $mode) : void
说明:该方法用于设置正则表达式迭代器的搜索模式。
参数:
示例:
$fruits = array("apple", "banana", "cherry", "date", "elderberry");
// 创建一个正则表达式迭代器,只返回以字母"c"开头的水果
$iterator = new RegexIterator(new ArrayIterator($fruits), '/^c/i');
// 设置搜索模式为RegexIterator::MATCH
$iterator->setMode(RegexIterator::MATCH);
// 遍历迭代器并输出匹配的水果
foreach ($iterator as $fruit) {
echo $fruit . "\n";
}
// 输出:cherry
// 设置搜索模式为RegexIterator::GET_MATCH
$iterator->setMode(RegexIterator::GET_MATCH);
// 遍历迭代器并输出完整的匹配数组
foreach ($iterator as $fruit) {
echo implode(", ", $fruit) . "\n";
}
// 输出:cherry
// 设置搜索模式为RegexIterator::ALL_MATCHES
$iterator->setMode(RegexIterator::ALL_MATCHES);
// 遍历迭代器并输出所有匹配的数组
foreach ($iterator as $fruit) {
foreach ($fruit as $match) {
echo implode(", ", $match) . "\n";
}
}
// 输出:ch, c
注意:以上示例中,正则表达式迭代器被创建并应用于一个包含水果的数组。通过设置不同的搜索模式,我们可以控制迭代器的行为,返回不同类型的结果。