mysql查詢時函式的巢狀呼叫_解決PHP中巢狀函式被呼叫時出現報錯的問題
阿新 • • 發佈:2021-02-12
技術標籤:mysql查詢時函式的巢狀呼叫
php中文網最新課程
每日17點準時技術乾貨分享
對於初入門的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 "
";functionName2();
通過瀏覽器訪問測試結果如下:
如圖出現了不能重新定義functionName2函式的報錯,怎麼解決避免這樣的錯誤呢?
這裡我們就需要用到if判斷語句,那麼完整的程式碼示例如下:
<?php // 當外部的函式沒有被呼叫時,內部的函式相當於不存在function functionName1(){ if (!function_exists('functionName2')){ function functionName2(){ echo "我是一個被巢狀的函式"; } } echo "我是一個函式";}functionName1();functionName1();echo "
";functionName2();
最後我們再通過瀏覽器訪問的測試結果如下圖:
綜上所述,我們可以得出一些重要結論:
1、當外部函式沒有被呼叫時,內部的函式就相當於不存在,否則直接呼叫就會出現上述中函式未定義的錯誤。
2、當呼叫多次外部函式時,就需要用一個判斷語句來宣告巢狀函式,否則就會出現不能重新被定義的錯誤。
注:function_exists() 可以判斷指定函式是否被定義。
-END-
宣告:本文選自「php中文網」,搜尋「 phpcnnew 」即可關注!
▼