Неожиданный конец $ в коде eval () - PullRequest
10 голосов
/ 26 мая 2011

Ненавижу задавать такой конкретный вопрос, но получаю ошибку, которую не могу понять.Это в работе 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 Ответ

21 голосов
/ 26 мая 2011

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

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