2014-03-01 48 views

回答

1

可以用同樣的理由嵌套函數內部,但我不建議做。它會越早變得麻煩。最好的做法是定義外面的功能,然後在任何你想要的地方使用它。如果函數執行的任務不經常重複,那麼爲什麼您首先要有嵌套函數?將所有邏輯放在第一個函數本身內部,並執行所需的任何操作。

如果您使用PHP 5.3+,則可以使用Lambda函數。例如,要總結兩個輸入變量,它可以寫成:

function some_func($a) { 
    return function($b) use ($a) { 
     return sum($a, $b); 
    } 
} 

如果這不是一種選擇,你沒事嵌套函數和來自使用它的問題,那麼你可以做以下:

function func1($arg) { 
    function func2($arg) { 
     # code... 
    } 
} 

如果你的函數接受多個參數,那麼你可以使用func_get_args()和/或func_num_args()

0

是的。你需要單獨的功能,如果你想調用函數2的功能1內你會做像這樣:

function func1($arg){ 
//write some code 
    func2($arg); 
} 

function func2($arg2){ 
//write some more code 
} 
1

這是不建議,儘量保持你的函數儘可能小/不嵌套功能或太多的陳述。你也可能需要其他地方的func2。

如果您想要第二個函數的參數,您必須將它們作爲函數的參數傳遞; FUNC2($ ARG)。將變量全局化或將它們保存在會話中會很愚蠢。

相關問題