2014-03-27 20 views
1

我试图运行下面的代码作为SAHI脚本:SAHI公司:_include在if语句

_include("initialScript.sah"); 
_include("secondScript.sah"); 

function currentTime(){ 
    var $current = new Date(); 
    var $hours = $current.getHours(); 
    var $minutes = $current.getMinutes(); 

    if ($minutes < 10){ 
     $minutes = "0" + minutes; 
    } 

    if($hours > 11){ 
     _log("It is " + $hours + ":" + $minutes + " PM"); 
    } 
    else { 
     _log("It is " + $hours + ":" + $minutes + " AM"); 
    } 

    if($hours >= 8 || $hours =< 20) { 
     _include("aScript.sah"); 
     _include("anotherScript.sah"); 
     ... 
    } 
    else { 
     //do nothing and continue below 
    } 
} 

_include("yetMoreScripts.sah"); 
... 

简单地说,我有各种脚本块,其次是当前时间的检验。 如果不在上午8点到晚上8点之间,则会跳过包含的脚本块并执行下面的其他脚本。 _logs告诉我,获得时间似乎按预期工作。 然而,无论何时我尝试按原样运行脚本,我都会立即失败,并且完全不相关的语法错误(例如,在进一步向下的_include方式中,根本没有错误)。从if语句中删除_includes似乎会使错误停止。我知道这应该工作,但没有。有没有人有类似的经验,并可以给我一个暗示,我犯了一个错误?

回答

1

据我所知,这应该工作。一个简单的测试:

test1.sah:

_log("ok"); 

test2.sah:

if (true) { 
    _include("test1.sah"); 
} 

当我运行这个从SAHI公司控制器,我得到一个 “OK” 记录。也许重新创建这个测试并检查是否得到相同的结果。 也许是“;”你包括后失踪? 你传递的动态值包括?像_include($ path)?

+0

我把函数放在我的函数文档中而不是主脚本中,只是简单地根据当前时间输出一个布尔值。然后在主脚本中调用该函数,检查另一个if语句中的布尔值,并执行或跳过相关的_includes。它现在似乎正在工作。尽管你的回答并不严格“正确”,但你提醒我再次检查我的语法,这让我可以自助。因此,我会将此标记为正确答案。谢谢。 :)编辑:没有缺少分号。我只是因为某种原因没有复制它们。 – hiyosilver