2013-02-13 76 views
0

如果我把一個函數放入一個if語句中,這是一種'只在尚未聲明的時候聲明'的有效方法嗎?我在another thread上讀到,嵌套在其他函數中的函數與非嵌套函數相同(不確定這適用於此)。我的功能是否會始終執行,或只有當if爲true時才執行?只有當語句爲真時,纔會讀取if語句中的函數嗎?

if(!function_exists('myFunction')){ 
    //Add myFunction just in case it wasn't declared previously 
    function myFunction() { 
    // do something 
    } 
    myFunction(); 
    } 
    else { 
    myFunction(); 
    } 

或者,有沒有更好的辦法做到這一點,是該功能可能會或可能不會被以前在父文件中聲明?

+1

地方函數myFunction的(){} if語句之外,如果你打算調用它在其他地方(如在你的其他聲明) – PlantTheIdea 2013-02-13 20:50:10

+0

我打算將它先前在其他地方聲明,這只是一個後備。那麼這個作品呢? (沒有雙聲明) – John 2013-02-13 20:57:18

+1

這是在同一文檔中某處不存在的函數的回退?除非我們動態地創建這個功能,這很荒謬。但是,這是可行的。 – PlantTheIdea 2013-02-13 20:59:27

回答

1

地方函數myFunction的(){} if語句之外,如果你打算在其他地方調用它(就像在你else語句)