對於初入門的PHP新手來說,在學習關於PHP函數嵌套的知識點時可能會有一定的難度。例如有的朋友在練習PHP函數巢狀相關問題時,會遇到呼叫內部函數時就會出現報錯的情況等。
那麼這篇文章就為大家詳細得分析介紹關於PHP中特殊函數巢狀函數的處理問題。
下面我們透過具體的程式碼範例,給大家進行詳解。
首先我們建立一段PHP巢狀函數程式碼範例如下:
<?php function functionName1() { function functionName2(){ echo "我是一个被嵌套的函数"; } echo "我是一个函数"; } functionName2();
此段程式碼我們透過瀏覽器存取測試的結果如下圖:
如圖出現了functionName2函數未被定義的報錯,這種情況怎麼處理呢?
下面我們在上述程式碼的基礎上,再呼叫functionName1這個函數,程式碼如下:
<?php function functionName1() { function functionName2(){ echo "我是一个被嵌套的函数"; } echo "我是一个函数"; } functionName1(); functionName2();
我們再透過瀏覽器測試,結果就如下圖:
#此時內部函數functionName2就能被成功呼叫了。
那麼如果我們在一個頁面多次呼叫外部函數,又會有什麼情況呢?
下面我們再在上述的程式碼基礎上,呼叫兩次functionName1函數,程式碼如下:
<?php function functionName1() { function functionName2(){ echo "我是一个被嵌套的函数"; } echo "我是一个函数"; } functionName1(); functionName1(); echo "<br>"; functionName2();
透過瀏覽器存取測試結果如下:
如圖出現了不能重新定義functionName2函數的報錯,要怎麼解決避免這樣的錯誤呢?
這裡我們就需要用到if判斷語句,那麼完整的程式碼範例如下:
<?php // 当外部的函数没有被调用时,内部的函数相当于不存在 function functionName1() { if (!function_exists('functionName2')){ function functionName2(){ echo "我是一个被嵌套的函数"; } } echo "我是一个函数"; } functionName1(); functionName1(); echo "<br>"; functionName2();
最後我們再透過瀏覽器存取的測試結果如下圖:
綜上所述,我們可以得到一些重要結論:
1、當外部函數沒有被呼叫時,內部的函數就相當於不存在,否則直接呼叫就會出現上述中函數未定義的錯誤。
2、當呼叫多次外部函數時,就需要用一個判斷語句來宣告巢狀函數,否則就會出現不能重新被定義的錯誤。
附註:function_exists() 可以判斷指定函數是否被定義。
想要了解更多PHP相關知識,大家可以關注PHP中文網PHP影片教學。歡迎大家來參考學習!
以上是怎麼解決PHP中巢狀函數被呼叫時出現報錯的問題? (圖文+影片)的詳細內容。更多資訊請關注PHP中文網其他相關文章!