如果我有兩個功能,像這樣:PHP:在第一個函數內的另一個函數中使用函數參數?
function func1($arg){
function func2(){
}
}
有沒有辦法使用$第二個函數中精氨酸的方法嗎?
如果我有兩個功能,像這樣:PHP:在第一個函數內的另一個函數中使用函數參數?
function func1($arg){
function func2(){
}
}
有沒有辦法使用$第二個函數中精氨酸的方法嗎?
您可以用同樣的理由嵌套函數內部,但我不建議做。它會越早變得麻煩。最好的做法是定義外面的功能,然後在任何你想要的地方使用它。如果函數執行的任務不經常重複,那麼爲什麼您首先要有嵌套函數?將所有邏輯放在第一個函數本身內部,並執行所需的任何操作。
如果您使用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()
。
是的。你需要單獨的功能,如果你想調用函數2的功能1內你會做像這樣:
function func1($arg){
//write some code
func2($arg);
}
function func2($arg2){
//write some more code
}
這是不建議,儘量保持你的函數儘可能小/不嵌套功能或太多的陳述。你也可能需要其他地方的func2。
如果您想要第二個函數的參數,您必須將它們作爲函數的參數傳遞; FUNC2($ ARG)。將變量全局化或將它們保存在會話中會很愚蠢。
你可以簡單地把$ arg放在'func2' –