我讨厌提出这样一个具体问题,但我收到一个我无法弄清楚的错误。这是一个小时运行的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
有什么建议吗?我试着寻找这个,却找不到任何东西。谢谢。
答案 0 :(得分:21)
eval
只接受陈述,而不是表达。您需要使用以下命令转换测试:
if (eval("return $task[0];")) {
答案 1 :(得分:1)
您缺少';'在字符串评估结束时。能够处理语句或表达式的评估函数。
示例:
$value = 7;
eval("\$value+=2;");
echo $value;