略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: AppendIterator::__construct

2024-11-12

AppendIterator::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

AppendIterator::__constructConstructs an AppendIterator

说明

public AppendIterator::__construct()

Constructs an AppendIterator.

参数

此函数没有参数。

范例

示例 #1 Iterating AppendIterator with foreach

<?php
$pizzas   
= new ArrayIterator(array('Margarita''Siciliana''Hawaii'));
$toppings = new ArrayIterator(array('Cheese''Anchovies''Olives''Pineapple''Ham'));

$appendIterator = new AppendIterator;
$appendIterator->append($pizzas);
$appendIterator->append($toppings);

foreach (
$appendIterator as $key => $item) {
    echo 
$key ' => ' $item PHP_EOL;
}
?>

以上例程会输出:

0 => Margarita
1 => Siciliana
2 => Hawaii
0 => Cheese
1 => Anchovies
2 => Olives
3 => Pineapple
4 => Ham

示例 #2 Iterating AppendIterator with the AppendIterator API

<?php
$pizzas   
= new ArrayIterator(array('Margarita''Siciliana''Hawaii'));
$toppings = new ArrayIterator(array('Cheese''Anchovies''Olives''Pineapple''Ham'));

$appendIterator = new AppendIterator;
$appendIterator->append($pizzas);
$appendIterator->append($toppings);

while (
$appendIterator->valid()) {
    
printf(
        
'%s => %s => %s%s',
        
$appendIterator->getIteratorIndex(),
        
$appendIterator->key(),
        
$appendIterator->current(),
        
PHP_EOL
    
);
    
$appendIterator->next();
}
?>

以上例程会输出:

0 => 0 => Margarita
0 => 1 => Siciliana
0 => 2 => Hawaii
1 => 0 => Cheese
1 => 1 => Anchovies
1 => 2 => Olives
1 => 3 => Pineapple
1 => 4 => Ham

注释

警告

When using iterator_to_array() to copy the values of the AppendIterator into an array, you have to set the optional use_key argument to false. When use_key is not false any keys reoccurring in inner iterators will get overwritten in the returned array. There is no way to preserve the original keys.

参见

add a noteadd a note

User Contributed Notes

There are no user contributed notes for this page.

官方地址:https://www.php.net/manual/en/appenditerator.construct.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3