PHP函數(1)

  • 2020-07-27 11:22:14
  • 閱讀次數:次
  • 作者:盈嵐科技小編
  • 來(lái)源:http://amzcoolest.com

網(wǎng)站建設開(kāi)發(fā)過(guò)程中,經(jīng)常需要反復重復某種操作或者處理,如數據查詢(xún)、字符串操作等,如果每個(gè)模塊的操作都需要重復輸入一次代碼,不僅執行效率低,而且后期維護都比較麻煩,這時(shí)不妨考慮使用函數來(lái)解決這個(gè)難題。

定義和調用函數

在PHP語(yǔ)言中,定義函數的語(yǔ)法格式如下:

function fun_name($arg_1, $arg_2, ..., $arg_n){    fun_body;}

其中,function表示聲明自定義函數必須使用的關(guān)鍵字,fun-name表示函數的名稱(chēng),$arg-1、$arg-2、$arg-n等為函數的參數,參數之間通過(guò)逗號分隔,參數個(gè)數不限,也可以省略參數。

函數名和PHP中的其他標識符命名規則相同。有效的函數名以字母或下劃線(xiàn)打頭,后面跟字母、數字或下劃線(xiàn)??梢杂谜齽t表達式表示為:[a-zA-Z-\x7f-\xff][a-zA-Z0-9-\x7f-\xff]*。函數名是大小寫(xiě)無(wú)關(guān)的,不過(guò)在調用函數時(shí),通常使用其在定義時(shí)相同的形式。

fun-body表示函數體,在函數體中可以包含任意多行代碼,這些代碼是函數的功能主體,并由這些代碼執行和完成指定的任務(wù)。注意,任何有效的PHP代碼都有可能出現在函數內部,甚至包括其他函數和類(lèi)定義。

當定義好函數之后,就可以調用函數了,調用函數的方法比較簡(jiǎn)單,只需要引用函數名,并賦予正確的參數即可,格式如下:

fun-name($arg-1, $arg-2, ..., $arg-n) ;

函數必須在其調用之前定義。例如,下面示例中在自定義函數中定義函數,然后分別進(jìn)行調用。

<?phpfunction foo(){    function bar() {    echo "I don't exist until foo() is called.\n";  }}/*現在還不能調用bar()函數,因為它還不存在*/foo();/*現在可以調用bar()函數了,因為foo()函數   的執行使得bar()函數變?yōu)橐讯x的函數*/bar();?>

在PHP中所有函數都具有全局作用域,可以在內部定義,在外部調用,反之亦然。

注意:PHP不支持函數重載,也不可能取消定義或者重定義已聲明的函數。

在PHP中可以調用遞歸函數。如:

<?phpfunction recursion($a){    if ($a < 20) {        echo "$a\n";        recursion($a + 1);  //調用函數自身    }}?>

在調用遞歸函數時(shí),應該設置循環(huán)調用的條件和次數,因為可能會(huì )破壞堆棧從而使當前腳本終止。

函數參數

通過(guò)參數列表可以傳遞信息給函數,這個(gè)信息列表是以逗號作為分隔符的表達式列表。在調用函數時(shí),需要向函數傳遞參數,被傳入的參數被稱(chēng)為實(shí)參,而在定義函數時(shí)指定的參數,被稱(chēng)為形參。參數傳遞的方式有按值傳遞、按引用傳遞和默認參數3種。

  1. 按值傳遞參數

將實(shí)參的值復制到對應的形參中,在函數內部的操作針對形參進(jìn)行,操作的結果不會(huì )影響到實(shí)參,即函數返回后,實(shí)參的值不會(huì )改變。如:

<?phpfunction fun($m){    $m = $m * 2 +  1;    echo "在函數內:\$m = ".$m;     //顯示11}$m = 5;fun($m);                           //調用函數echo "在函數外:\$m = ".$m;        //顯示5?>

2. 按引用傳遞參數

按引用傳遞參數是將實(shí)參的內存地址傳遞給形參中,這時(shí)在函數內部的所有操作都會(huì )影響到實(shí)參的值,此時(shí)再次調用實(shí)參,也會(huì )發(fā)現實(shí)參的值發(fā)生變化。如:

<?phpfunction fun(&$m){    $m = $m * 2 +  1;    echo "在函數內:\$m = ".$m;     //顯示11}$m = 5;fun($m);                           //調用函數echo "在函數外:\$m = ".$m;        //顯示11?>

3. 默認參數(可選參數)還有一種設置參數的方式,即可選參數??梢灾付硞€(gè)參數為可選參數,將可選參數放置在參數列表的末尾,并且指定其默認值。如:

<?phpfunction fun(&$m, $n=0){    $l = $m  +  $n;    if($n == 0)        echo "\$m = ".$l."<p>";    else        echo "\$m  +  \$n = ".$l."<p>";}$m = 5;$n = 5;fun($m);                     //顯示:$m = 5fun($m, $n);                 //顯示:$m + $n = 10?>

PHP還允許使用數組和特殊類(lèi)型NULL作為默認參數,默認值必須是常量表達式,不能是諸如變量、類(lèi)成員,或者函數調用等表達式。

注意:當使用默認參數時(shí),任何默認參數必須放在任何非默認參數的右側;否則,函數將不會(huì )按照預期的情況工作。

當前文章標題:PHP函數(1)

當前URL:http://amzcoolest.com/news/wzzz/3247.html

上一篇:PHP流程控制(3)

下一篇:PHP函數(2)

網(wǎng)站建設、抖音推廣、頭條推廣、微信朋友圈推廣、快手推廣專(zhuān)線(xiàn):181-8386-5875(微信同號)
亚洲精品无码mv在线|新国产精品视频福利免费|日韩高清在线观看不卡一区二区|一本久久a久久精品免费不|亚洲私人无码内射免费观看