上篇文章給大家介紹了《什么是回調函數?怎么定義的?其作用是什么?(詳解及實例)》,本文繼續給大家介紹PHP中什么是內部函數?其調用方式是?和外部函數的區別是?本篇文章,將會讓你們有不一樣的收獲,一起去繼續探索PHP的奧秘吧!!!
什么是內部函數:
在函數內部聲明的函數就是內部函數;
具體我們以代碼為例:
<?php //內部函數 function outer(){ //在outer函數內部在定義一個函數(內部函數) function inner(){ echo '千帆過盡,回首當年,那份純凈的夢想早已漸行漸遠,如今歲月留下的,只是滿目荒涼'; } } //內部函數如何調用 inner(); ?>
代碼解析:
首先,我們先定義一個函數outer(),緊接著我們在outer函數的內部再次定義一個函數,此時我們定義的函數就是內部函數,其次我們輸出(echo)一推字符串,
然而,我們如何調用內部函數,首先,我們直接調用inner(),運行結果顯示報錯,調用了未定義的inner(),但是我們看到上述代碼,我們可以知道,我們已經定義過了,因此我們可以說明,內部函數在外部不能夠直接調用。
<?php /******內部函數*****/ function outer(){ //在outer函數內部再次定義個函數 (內部函數) function inner(){ echo '千帆過盡,回首當年,那份純凈的夢想早已漸行漸遠,如今歲月留下的,只是滿目荒涼' ; } inner(); } //內部函數如何調用 //inner();內部函數在外部無法直接調用 //內部函數在函數內部如何調用是否有先后順序 outer(); ?>
然而當我們在函數內部調用inner(),如果我們想讓它正常執行,我們只需調用outer()即可,即可得到我們輸入的結果:如下所示:
如果我們把inner()放在定義函數的上面結果什么樣呢?
根據結果顯示,不能調用未定義的inner()
<?php /******內部函數*****/ function outer(){ //在outer函數內部再次定義個函數 (內部函數) inner(); function inner(){ echo '千帆過盡,回首當年,那份純凈的夢想早已漸行漸遠,如今歲月留下的,只是滿目荒涼' ; } } //內部函數如何調用 //inner();內部函數在外部無法直接調用 //內部函數在函數內部如何調用是否有先后順序 outer(); ?>
因此我們了解到,inter()不能調用,因為PHP解析器知識預先加載函數,并沒有執行outer函數,所以不知道內部情況;
當內部函數在外部函數時,又是如何調用的?
<?php /******內部函數*****/ function outer(){ //在outer函數內部再次定義個函數 (內部函數) function inner(){ echo '千帆過盡,回首當年,那份純凈的夢想早已漸行漸遠,如今歲月留下的,只是滿目荒涼' ; } } //內部函數如何調用 //inner();內部函數在外部無法直接調用 //內部函數在函數內部如何調用是否有先后順序 //outer(); //內部函數在外部函數,如何調用 outer(); inner(); ?>
代碼解析:
如果我們想讓外部函數生效,要先調用outer(),當我們有了內部函數之后,我們在調用inner()函數的調用,我們會發現也會出現我們所要輸出的內容;
根據上述文章內容,我們總結如下(內部函數和外部函數的區別是):
1.在函數外部是否可以調用部函數?
不可以直接調用,但是如果調用外部函數之后,就可以任意調用內部函數
2.在函數內部是否可以調用內部函數?
可以調用, 但是必須在內部函數定義之后調用,因為PHP解析器只會加載外部函數并不會執行外部函數,所以不知道外部函數中還有
內部函數。
推薦學習:《PHP視頻教程》