2011-05-26 54 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