您好,登錄后才能下訂單哦!
這篇文章主要介紹了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ù)*****/ 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é)果:如下所示:
如果我們把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(); ?>
因此我們了解到,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)容;
根據(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í)!
免責(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)容。