溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP中內(nèi)部函數(shù)指的是什么

發(fā)布時(shí)間:2021-06-07 09:57:20 來(lái)源:億速云 閱讀:183 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹了PHP中內(nèi)部函數(shù)指的是什么,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

什么是內(nèi)部函數(shù):

在函數(shù)內(nèi)部聲明的函數(shù)就是內(nèi)部函數(shù);

具體我們以代碼為例:

<?php
    //內(nèi)部函數(shù)
    function outer(){
    //在outer函數(shù)內(nèi)部在定義一個(gè)函數(shù)(內(nèi)部函數(shù))
    function inner(){
      echo '千帆過(guò)盡,回首當(dāng)年,那份純凈的夢(mèng)想早已漸行漸遠(yuǎn),如今歲月留下的,只是滿目荒涼';
    }
    }
    //內(nèi)部函數(shù)如何調(diào)用
    inner();
?>

代碼解析:

首先,我們先定義一個(gè)函數(shù)outer(),緊接著我們?cè)趏uter函數(shù)的內(nèi)部再次定義一個(gè)函數(shù),此時(shí)我們定義的函數(shù)就是內(nèi)部函數(shù),其次我們輸出(echo)一推字符串,

然而,我們?nèi)绾握{(diào)用內(nèi)部函數(shù),首先,我們直接調(diào)用inner(),運(yùn)行結(jié)果顯示報(bào)錯(cuò),調(diào)用了未定義的inner(),但是我們看到上述代碼,我們可以知道,我們已經(jīng)定義過(guò)了,因此我們可以說(shuō)明,內(nèi)部函數(shù)在外部不能夠直接調(diào)用。

PHP中內(nèi)部函數(shù)指的是什么

<?php
/******內(nèi)部函數(shù)*****/
function outer(){
//在outer函數(shù)內(nèi)部再次定義個(gè)函數(shù) (內(nèi)部函數(shù))
function inner(){
echo  '千帆過(guò)盡,回首當(dāng)年,那份純凈的夢(mèng)想早已漸行漸遠(yuǎn),如今歲月留下的,只是滿目荒涼' ;
}
 inner();
}
//內(nèi)部函數(shù)如何調(diào)用
//inner();內(nèi)部函數(shù)在外部無(wú)法直接調(diào)用
//內(nèi)部函數(shù)在函數(shù)內(nèi)部如何調(diào)用是否有先后順序
outer();
?>

然而當(dāng)我們?cè)诤瘮?shù)內(nèi)部調(diào)用inner(),如果我們想讓它正常執(zhí)行,我們只需調(diào)用outer()即可,即可得到我們輸入的結(jié)果:如下所示:

PHP中內(nèi)部函數(shù)指的是什么

如果我們把inner()放在定義函數(shù)的上面結(jié)果什么樣呢?

根據(jù)結(jié)果顯示,不能調(diào)用未定義的inner()

<?php
/******內(nèi)部函數(shù)*****/
function outer(){
//在outer函數(shù)內(nèi)部再次定義個(gè)函數(shù) (內(nèi)部函數(shù))
inner();
function inner(){
echo  '千帆過(guò)盡,回首當(dāng)年,那份純凈的夢(mèng)想早已漸行漸遠(yuǎn),如今歲月留下的,只是滿目荒涼' ;
}
}
//內(nèi)部函數(shù)如何調(diào)用
//inner();內(nèi)部函數(shù)在外部無(wú)法直接調(diào)用
//內(nèi)部函數(shù)在函數(shù)內(nèi)部如何調(diào)用是否有先后順序
outer();
?>

PHP中內(nèi)部函數(shù)指的是什么

因此我們了解到,inter()不能調(diào)用,因?yàn)镻HP解析器知識(shí)預(yù)先加載函數(shù),并沒(méi)有執(zhí)行outer函數(shù),所以不知道內(nèi)部情況;

當(dāng)內(nèi)部函數(shù)在外部函數(shù)時(shí),又是如何調(diào)用的?

<?php
/******內(nèi)部函數(shù)*****/
function outer(){
//在outer函數(shù)內(nèi)部再次定義個(gè)函數(shù) (內(nèi)部函數(shù))
function inner(){
echo  '千帆過(guò)盡,回首當(dāng)年,那份純凈的夢(mèng)想早已漸行漸遠(yuǎn),如今歲月留下的,只是滿目荒涼' ;
}
}
//內(nèi)部函數(shù)如何調(diào)用
//inner();內(nèi)部函數(shù)在外部無(wú)法直接調(diào)用
//內(nèi)部函數(shù)在函數(shù)內(nèi)部如何調(diào)用是否有先后順序
//outer();
//內(nèi)部函數(shù)在外部函數(shù),如何調(diào)用
outer();
inner();
?>

代碼解析:

如果我們想讓外部函數(shù)生效,要先調(diào)用outer(),當(dāng)我們有了內(nèi)部函數(shù)之后,我們?cè)谡{(diào)用inner()函數(shù)的調(diào)用,我們會(huì)發(fā)現(xiàn)也會(huì)出現(xiàn)我們所要輸出的內(nèi)容;

PHP中內(nèi)部函數(shù)指的是什么

根據(jù)上述文章內(nèi)容,我們總結(jié)如下(內(nèi)部函數(shù)和外部函數(shù)的區(qū)別是):

1.在函數(shù)外部是否可以調(diào)用部函數(shù)?

不可以直接調(diào)用,但是如果調(diào)用外部函數(shù)之后,就可以任意調(diào)用內(nèi)部函數(shù)
2.在函數(shù)內(nèi)部是否可以調(diào)用內(nèi)部函數(shù)?
可以調(diào)用, 但是必須在內(nèi)部函數(shù)定義之后調(diào)用,因?yàn)镻HP解析器只會(huì)加載外部函數(shù)并不會(huì)執(zhí)行外部函數(shù),所以不知道外部函數(shù)中還有
內(nèi)部函數(shù)。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“PHP中內(nèi)部函數(shù)指的是什么”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI