陳春暉
摘要:
本文通過總結(jié)幾個小例子,初步分析了PHP語言中的函數(shù)參數(shù)的傳遞,函數(shù)返回值的確定,等,給出了一些簡單的結(jié)論。
關(guān)鍵詞:
函數(shù);傳遞;返回值
中圖分類號:
TP312.1
文獻(xiàn)標(biāo)識碼:
A
文章編號:
1672-9129(2020)15-0198-01
函數(shù)傳遞參數(shù)通常有三種方式,第一種方式,按值傳遞,這里定義了一個函數(shù),test,函數(shù)有兩個參數(shù),parm1、parm2。接下來調(diào)用這個函數(shù)同樣有兩個參數(shù)$foo和$boo,在調(diào)用函數(shù)的時候,PhP會默認(rèn)將$foo的值賦值$parm1,$boo值賦值給$parm2,這個過程就像神奇的印度飛餅,不管你傳遞多少個參數(shù),函數(shù)會按照參數(shù)的先后順序一一接收。
例如調(diào)用者的第一個參數(shù)$foo的值賦給函數(shù)的第一個參數(shù),$boo的值賦給第二個參數(shù)parm2,如果有第3個第4個也是一一這樣的對應(yīng)的關(guān)系。
按值傳遞的方式就是將函數(shù)調(diào)用者中的參數(shù),以從左到右的順序依次復(fù)制給函數(shù)的參數(shù),然后執(zhí)行函數(shù)體內(nèi)的代碼,這就是按值傳遞的方式,也是最常見的方式。
接下來看一下第二種傳遞的方式:按引用傳遞。之前我們在學(xué)習(xí)變量的時候,學(xué)習(xí)過按引用賦值,按引用傳遞的參數(shù)與按引用賦值是一樣的。我們再來回顧一下,在這個例子中定義了一個$name變量,將其賦值為函數(shù)測試,然后將$name這個變量按引用的方式賦值給$membername使用了地址符號。
在內(nèi)存中的情況是只有一個函數(shù)測試這個值,$name和$membername,他們同時指向函數(shù)測試,這個值的地址。當(dāng)函數(shù)測試值發(fā)生變化的時候,$name的值和$membername的值同時發(fā)生變化,這就是按引用傳遞。在函數(shù)中按引用傳遞,就是將參數(shù)的內(nèi)存地址傳遞到函數(shù)中,即在參數(shù)前面加一個地址符號。我們來舉例說明一下,按值傳遞和按引用傳遞的區(qū)別。
在鄉(xiāng)村愛情故事中,趙四獲得了村委會的任職,村委會給他安排了一間自己的辦公室,于是他弄了一份圖紙,設(shè)計(jì)了一個這樣的辦公室。此時劉能看到了趙四的辦公室,真好看,于是他想方設(shè)法弄到了肇事的處置。按照這張圖紙,他建造了一間一模一樣的辦公室,這種根據(jù)圖紙能夠創(chuàng)建一模一樣的辦公室的方式,就相當(dāng)于按值傳遞方式。不久以后,由于村委會經(jīng)濟(jì)拮據(jù),所以決定將劉能和趙四安排在同一個辦公室,即他們兩個共用這一個辦公室。這時候趙四和劉能他們兩個之間又開始相互影響了,這種方式就是按引用傳遞的方式,即使在函數(shù)的內(nèi)部,所有的操作都會影響到調(diào)用者參數(shù)的值。
在填寫網(wǎng)站的一些個人信息的時候,我們通常會在性別來有男女和保密三個選項(xiàng),如果你不選擇男或女,通常我們將其默認(rèn)為保密,下面就實(shí)現(xiàn)這個功能。假如說我輸入張三,然后我們來運(yùn)行一下,在瀏覽器中輸入網(wǎng)址,0212,看到提示信息中給我們報(bào)了錯誤,這里有個警告,說音符的函數(shù)缺少第二個參數(shù)。
我們來看一下,這里有兩個參數(shù)$name和$gender,而我們在調(diào)用的時候只賦了一個初值張三,所以他給我們報(bào)了一個提示信息,缺少第二個參數(shù),要加一個男。
Functioninfo($name,$gender)
{
Echo“$name”;
}
Info(“張三”);
再來輸入一下。張三。這是正常了?,F(xiàn)在要實(shí)現(xiàn)一個功能,不輸入男或女,而顯示保密,這應(yīng)該怎么做呢?當(dāng)然你也可以使用ifelse語句來判斷,不是男不是女,然后選擇保密。這里我們使用更簡單的方式,對于這個參數(shù),我們?yōu)槠滟x一個初值,這樣在我們不使用第二個參數(shù)的時候,就會為其賦值為保密。
再來看一下,張三,第一個參數(shù)張三,第二個參數(shù)難輸出的時候,張三男第一個參數(shù)里是第二個參數(shù)沒有,默認(rèn)的情況下就是保密這種為參數(shù)賦一個初始值的方式,就是函數(shù)的默認(rèn)參數(shù)形式。
函數(shù)的返回值,我們已經(jīng)知道可以通過參數(shù)向函數(shù)傳遞信息,不過函數(shù)還可以向它的調(diào)用者發(fā)回信息,首先程序運(yùn)行到調(diào)用者的時候,根據(jù)調(diào)用者名稱找到函數(shù),這時控制權(quán)轉(zhuǎn)移到函數(shù),函數(shù)執(zhí)行函數(shù)體內(nèi)的代碼,執(zhí)行完畢以后,通過return語句將返回值返回給調(diào)用者,這樣控制權(quán)再次回到了調(diào)用者。
結(jié)語:這里是對函數(shù)參數(shù)傳遞及返回值的一些簡單探討,如有錯漏,歡迎指正。
參考文獻(xiàn):
[1]PHP程序設(shè)計(jì)(慕課版).程文彬,李樹強(qiáng)2016
[2]PHP網(wǎng)站開發(fā)實(shí)例教程(第2版)黑馬程序員2020
[3]PHP動態(tài)網(wǎng)站程序設(shè)計(jì)(第2版).唐四薪.2020
[4]web動態(tài)網(wǎng)站開發(fā)技術(shù).郭玲.2019
[5]PHP動態(tài)網(wǎng)站開發(fā)項(xiàng)目教程.牟奇春.汪劍.2016