函數(shù)執(zhí)行順序由定義順序、調(diào)用順序、嵌套和返回決定。先定義的函數(shù)先執(zhí)行,調(diào)用順序決定執(zhí)行先后,內(nèi)部函數(shù)先執(zhí)行,函數(shù)調(diào)用會(huì)阻塞當(dāng)前執(zhí)行直到函數(shù)返回。
PHP 函數(shù)執(zhí)行順序是如何確定的?
在 PHP 中,函數(shù)執(zhí)行順序由以下因素決定:
定義順序: 先定義的函數(shù)將先執(zhí)行。
調(diào)用順序: 函數(shù)在腳本中的調(diào)用順序。
嵌套: 在函數(shù)內(nèi)嵌套調(diào)用的函數(shù),內(nèi)部函數(shù)將先執(zhí)行。
返回: 函數(shù)調(diào)用將阻塞當(dāng)前執(zhí)行,直到函數(shù)執(zhí)行完畢并返回結(jié)果。
實(shí)戰(zhàn)案例
考慮以下代碼:
function outer() { echo "Outer function started.\n"; inner(); echo "Outer function ended.\n"; } function inner() { echo "Inner function started.\n"; echo "Inner function ended.\n"; } outer();
登錄后復(fù)制
執(zhí)行順序:
- 定義
outer()
函數(shù)。定義 inner()
函數(shù)。調(diào)用 outer()
函數(shù)。
執(zhí)行 outer()
函數(shù)內(nèi)部的代碼:
輸出 “Outer function started.\n”。調(diào)用 inner()
函數(shù)。
執(zhí)行 inner()
函數(shù)內(nèi)部的代碼:
輸出 “Inner function started.\n”。輸出 “Inner function ended.\n”。返回到 outer()
函數(shù)。
繼續(xù)執(zhí)行 outer()
函數(shù)內(nèi)部的代碼:
輸出 “Outer function ended.\n”。
輸出:
Outer function started. Inner function started. Inner function ended. Outer function ended.
登錄后復(fù)制