2014-03-27 66 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