Example #1
0
function generator()
{
    (yield 1);
    yield from generator2();
    (yield 4);
    return 3;
}
}
?>
                </p>    
                
                    
                <h2>Modifier la clé associée à la valeur</h2>
                <p class="col-sm-12">
                    <?php 
function generator2()
{
    (yield 'a' => 'Itération 1');
    (yield 'b' => 'Itération 2');
    (yield 'c' => 'Itération 3');
    (yield 'd' => 'Itération 4');
}
foreach (generator2() as $key2 => $val2) {
    echo $key2 . ' => ' . $val2 . '<br>';
}
?>
                </p>
                
                
                <h2>Retourner une référence</h2>
                <p class="col-sm-12">
                    <?php 
class MyClassName
{
    protected $myAttribut;
    public function __construct()
    {
        $this->myAttribut = ['refUn', 'refDeux', 'refTrois', 'refQuatre'];
                <p><strong>envoyer des données au générateur</strong></p>
                <p class="col-sm-12">
                    <?php 
function generator()
{
    echo yield;
}
$generator = generator();
$generator->send('<p>Hello world depuis la variable <code>$generator</code>!!!</p>');
function generator2()
{
    echo (yield 'Hello world !');
    echo yield;
    // echo yield; // Pour tester affichage du message3
}
$generator2 = generator2();
// On envoie « Message 1 »
// PHP va donc l'afficher grâce au premier echo du générateur
$generator2->send('<p>Message 1</p>');
// On envoie « Message 2 »
// PHP reprend l'exécution du générateur et affiche le message grâce au 2ème echo
$generator2->send('<p>Message 2</p>');
// On envoie « Message 3 »
// La fonction générateur s’était déjà terminée, donc rien ne se passe
$generator2->send('<p>Message 3</p>');
?>
                </p>


                <h2>Un exemple multitâche</h2>
                <p><strong>envoyer des données au générateur</strong></p>
Example #4
0
function generator()
{
    yield from generator2();
    return 3;
}