Неожиданный $end в коде eval() 'd

Мне не нравится задавать такой конкретный вопрос, но я получаю ошибку, которую я не могу понять. Это задание cron, которое работает в течение часа. Я создаю массив задач, каждый из которых имеет проверку даты, которая должна быть eval() 'd.

$todo = array();
$todo[] = array( "date('z')%3 == 0", "Task 1" );
$todo[] = array( "date('N') == 1", "Task 2" );
foreach( $todo as $task )
{
    if( eval($task[0]) ) {
        echo $task[1];
    }
}

По какой-то причине строка eval() дает мне эту ошибку. Обратите внимание, что я получаю эту ошибку для обеих задач.

Parse error: syntax error, unexpected $end in /file.php(21) : eval()'d code on line 1

Любые предложения? Я попытался найти это, но ничего не нашел. Спасибо.

Ответ 1

eval принимает только выражения, а не выражения. Вам необходимо конвертировать ваши тесты с помощью:

if (eval("return $task[0];")) {