Yinelenebilirler

Iterable bir sözde-tür olup PHP 7.1'de eklendi. Traversable gerçeleyen bir nesne veya bir dizi kabul eder. Bu türlerin her ikisi de foreach kullanarak yinelenebilir ve yield from ile bir üreteç içinde kullanılabilir.

Yinelenebilirlerin kullanımı

Yinelenebilir, bir işlevin bir değerler kümesi gerektirdiğini belirtmek için bir değiştirge türü olarak kullanılabilir. Fakat foreach ile kullanacağından değer kümesinin biçimini umursamaz. Eğer değer bir dizi veya bir Traversable örneği değilse bir TypeError yavrulanır.

Örnek 1 - Yinelenebilir değiştirge örneği

<?php

function foo(iterable $yinele) {
    foreach (
$yinele as $değer) {
        
// ...
    
}
}

?>

iterable türünde bildirilen değişirgeler null veya öntanımlı değer olarak bir dizi kullanabilir.

Örnek 2 - Yinelenebilir değiştirge için öntanımlı değer örneği

<?php

function foo(iterable $iterable = []) {
    
// ...
}

?>

Bir işlevin iterable türünde bir değerle döneceğini belirtmek için dönüş türü olarak kullanılabilir. Dönen değer bir dizi veya bir Traversable örneği değilse bir TypeError yavrulanır.

Örnek 3 - Yinelenebilir dönüş türü örneği

<?php

function bar(): iterable {
    return [
123];
}

?>

Dönüş türü olarak iterable bildiren bir işlev ayrıca, bir üreteç olarak da kullanılabilir.

Örnek 4 - Yinelenebilir üreteç dönüş türü örneği

<?php

function gen(): iterable {
    yield 
1;
    yield 
2;
    yield 
3;
}

?>

add a note add a note

User Contributed Notes 1 note

up
-10
j_jaberi at yahoo dot com
4 years ago
Just to note:
Though objects may (or may not) be Traversable, the can use in foreach because implicit conversion to array
<?php
class Foo {
    public
$a = 1;
    public
$b = "Helo";
};

$bar = new Foo;

foreach(
$bar as $elm) {
    echo
$elm . ' ';
}

?>
prints 1 Hello
Even
<?php
$bar
= new stdClass
foreach($bar as $elm) {
    echo
$elm . ' ';
}
?>
is correct.
To Top