PHP函數(shù)(2)

函數(shù)返回值

使用return關(guān)鍵字可以返回函數(shù)值。如果在一個(gè)函數(shù)體內(nèi)調(diào)用return語(yǔ)句,將立即結(jié)束該函數(shù)的執(zhí)行,并將它的參數(shù)作為函數(shù)的值返回。如:

<?phpfunction square($n){    return $n * $n;}echo square(5);     //返回25?>

如果在全局范圍中調(diào)用return語(yǔ)句,則當(dāng)前腳本文件將中止運(yùn)行。如果當(dāng)前腳本文件是被in-clude的或者require的,則控制交回調(diào)用文件。return也會(huì)終止eval語(yǔ)句或者腳本文件的執(zhí)行。

返回值可以包括數(shù)組和對(duì)象的任意類(lèi)型。但是函數(shù)不能返回多個(gè)值,但可以通過(guò)返回一個(gè)數(shù)組來(lái)得到類(lèi)似的效果。如:

<?phpfunction small_n (){    return array (0, 1, 2);}list ($zero, $one, $two) = small_n();?>

如果需要函數(shù)返回一個(gè)引用,必須在函數(shù)聲明和指派返回值給一個(gè)變量時(shí)都使用引用操作符&。如:

<?phpfunction &foo(){  return return $ref;}$newref = &foo();?>

可變函數(shù)

PHP支持可變函數(shù),即如果一個(gè)變量名后有圓括號(hào),PHP將尋找與變量的值同名的函數(shù),并且嘗試執(zhí)行它??勺兒瘮?shù)可以用來(lái)實(shí)現(xiàn)包括回調(diào)函數(shù)、函數(shù)表在內(nèi)的一些用途。下面通過(guò)一個(gè)示例體會(huì)什么是可變函數(shù)。

<?phpfunction fun1(){    echo "函數(shù)1<p>";}function fun2(){    echo "函數(shù)2<p>";}$m = "fun1";$m();                 //調(diào)用fun1函數(shù)$m = "fun2";$m();                 //調(diào)用fun2函數(shù)?>

通過(guò)上面示例可以看到,函數(shù)的調(diào)用是通過(guò)改變變量的變量名實(shí)現(xiàn)的,通過(guò)在變量名后面加上一對(duì)小括號(hào),PHP就會(huì)自動(dòng)尋找與變量名相同的函數(shù),并且執(zhí)行它,如果找不到對(duì)應(yīng)的函數(shù),則系統(tǒng)會(huì)自動(dòng)報(bào)錯(cuò)。

取消引用

當(dāng)不需要引用時(shí),可以使用unset()函數(shù)取消引用。該函數(shù)能夠斷開(kāi)變量名與引用的內(nèi)容之間的聯(lián)系,而不是銷(xiāo)毀變量?jī)?nèi)容。如:

<?php$a = 1;$b = &$a;       //定義引用echo $b;        //顯示1unset($b);      //取消引用echo $b;        //顯示空?>

網(wǎng)站建設(shè)、網(wǎng)絡(luò)營(yíng)銷(xiāo)咨詢(xún)專(zhuān)線:0871-63535511(點(diǎn)擊可一鍵撥號(hào))