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>
<? 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));