try {
            $data = yield;
            echo '<p>Tâche 2, itération ' . $i . ', valeur envoyée : ' . $data . '</p>';
        } catch (Exception $e) {
            echo '<p>Erreur tâche 2 : ' . $e->getMessage() . '</p>';
            return;
        }
    }
}
function task3a()
{
    for ($i = 1; $i <= 4; $i++) {
        try {
            $data = yield;
            echo '<p>Tâche 3, itération ' . $i . ', valeur envoyée : ' . $data . '</p>';
        } catch (Exception $e) {
            echo '<p>Erreur tâche 3 : ' . $e->getMessage() . '</p>';
            return;
        }
    }
}
$taskRunner2->addTask(task1a());
$taskRunner2->addTask(task2a());
$taskRunner2->addTask(task3a());
$taskRunner2->run();
?>
                </p>
            </section>
        </div>
    </body>
</html>
Beispiel #2
0
<?

task2a('01.05.1980');
task2b('01.05-1980');


function task2a($date = '01.05.1980') {

    #проверили, что бы были только цифры
    if (!preg_match('/(\d{2}.\d{2}.\d{4})$/', $date)) return false;

    #для удобства
    if (!$arr = split ('[.]', $date)) return false;

    /*$arr = array_map (function($val) {
        # запасной вариант, если убрать выше регулярку на проверку цифр, тут можно каждый элемент привести в чувства
        return intval($val);
    }, $arr);
    */

    list ($day, $month, $year) = $arr;

    #долго искал функцию, возвращающую кол-во месяцев в году
    if ((int)$month < 1 || (int)$month > 12) return false;

    #диапазон дат по желанию
    if ((int)$year < 1900 || (int)$year > 2030) return false;

    #узнали, сколько дней в этом месяце, что бы не пролететь с високосным годом
    $days = date("t", mktime(0, 0, 0, $month, 1, $year));