2011-05-26 68 views
10

我不想问这样一个具体的问题,但我得到一个我无法弄清楚的错误。这是一个按小时运行的定时任务。我创建了一组任务,每个任务都有一个应该是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 

有什么建议吗?我试图寻找这个,但找不到任何东西。谢谢。

+0

您在某处丢失了大括号。这不可能是整个脚本。 – 2011-05-26 17:26:57

+0

不,就是这样。 – andrewtweber 2011-05-26 17:30:20

+2

我没有看到任何丢失的大括号。该脚本正在工作,除了eval()部分。 – Arjan 2011-05-26 17:30:39

回答

21

eval只接受语句,不接受表达式。您需要将您的测试转换为:

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

马里奥,感谢您的解决方案! – faramka 2012-04-02 10:58:38