php教程:php自訂函數函數應用

來源:互聯網
上載者:User
函數的定義:函數就是一段封裝好的代碼塊,可以隨時調用。在PHP中有兩種函數:自訂函數與系統函數。

自訂函數文法格式:

function 函數名稱([參數1,[參數2]....])

{

函數體(程式內容敘述)

[return 傳回值;]

}

註:[]裡的東西可有可無

自訂函數的名稱:

  1. 它是函數在程式碼中的識別名稱,函數名可以是以字母或底線開頭後跟零個或多個字母、底線和數位任何字串。

  2. 符合變數名的命名規則

  3. 函數名不區分大小寫。

  4. 函數名不能重複,命名函數函數時不可使用已經聲明的函數(這個和變數的命名不同,變數可以覆蓋前一個變數名,而函數不可以),和PHP系統函數名稱。

函數名稱和變數名稱的區別:

變數名嚴格區分大小寫,函數名不區分大小寫。

參數(可以分為形參和實參):

所謂參數就是:用來把數值從函數外部傳入函數體中,並用來加以運算處理。

參數之間用“,”隔開,當函數不需要任何數值傳入時,可以省略參數。

形參:聲明函數時,函數名後面括弧內的運算式稱為形參。

function table(形參1,形參2){}

實參:被調用函數名後面括弧中的運算式稱為實參。

table(實參1,實參2);

實參和形參需要按順序對應傳遞資料。

function table2($rows,$cols,$color='yellow'){    echo '<table border="1" bgcolor="'.$color.'">';    for($i = 0;$i < $rows;$i++){        echo '<tr>';        for($n = 0;$n <$cols;$n++){            echo '<td>'.($i*$rows+$n).'</td>';        }        echo '</tr>';    }}table2(10,10,'red');

注意:函數參數中,沒有預設值的放到前面,有預設值的放在參數列表中的後邊。

table2($rows,$cols,$color = 'yellow')

傳回值:

當調用函數時需要它返回一些數值,那麼就要在函數體中用return語句實現。

格式如下:

return 傳回值;//傳回值可以是變數也可以是一個運算式

exit(); //無傳回值 void

return語句在函數體中使用時,有以下兩個作用:

  1. return語句可以向函數調用者返回函數體中任意確定的值。

  2. 將程式控制權返回到調用者的範圍,即退出函數。在函數中如果執行了return語句,它後面的語句就不會被執行了。

說明:如果函數沒有傳回值,就只能算是一個執行過程,只依靠函數做一些事情還不夠,有時更需要在程式指令碼中

使用函數執行後的結果。由於變數的範圍的差異,調用函數的指令碼程式不能直接使用函數體裡面的資訊,但可以通過關鍵字return向調用者傳遞資料。

echo與return:

echo直接輸出到瀏覽器,不能再加工,不能賦值給變數

return可以賦值給變數,變數是資料的臨時容器(return返回一個值,等待一個變數接收它)

注意: 如果函數有傳回值,當函數執行完畢時就會將return後面的值返回到調用函數的位置處,這樣就可以把函數名稱當作函數返回的值使用。(這時調用函數時對ruturn後面的值是不管用的(retrun的值已經返回到調用函數的位置處,return以前的輸出還是可以照樣輸出),因為她已經變成某個值了無法用funName();輸出,需要echo funName()才可以輸出。)

<?phpheader("content-type:text/html;charset=utf-8");echo show();echo '<hr>';function show(){    echo 'ccc';    return 'aaa';    //return所在行之後的代碼不會執行    echo 111;}//函數的調用,不會將return後面的值返回show();echo '<hr>';//return返回的值 需要一個變數來接收它$result = show();echo $result;echo '<hr>';//也可以直接輸出 函數名稱echo show();echo '<hr>';

輸出結果:

cccaaa

ccc

cccaaa

cccaaa

函數的調用:

格式:函數名();

說明:table();

  1. 不管是自訂函數還是系統函數,如果函數不被調用,就不會執行。

  2. 通過函數名稱去調用函數,並讓函數體的代碼運行,調用幾次函數體就會執行幾次。

  3. 在PHP中可以在函數的聲明之後調用,也可以在函數的聲明之前調用,還可以在函數中調用函數。

駝峰命名法:

function showInfo(){}function ShowInfo(){}

判斷函數是否存在: function_exists()

if(function_exists('table')){    echo 'table';}else{    echo 'table函數不存在,請先定義table函數';}

PHP變數的範圍:

  • 局部變數

  • 全域變數

  • 靜態變數

<?php$username = 'shifang';function stu(){    $name = 'libai';    echo $name;    //無法調用外部的$username,而在函數體內也沒有聲明$username10   echo $username;    echo 'xxxx';}stu();//函數體外無法調用函數體內的變數16.echo $name;echo $username;

結果:

libai

Notice: Undefined variable: username in D:\xampp\htdocs\89\Exercise\2016-7-28 PHP function\007quanju.php on line 10

xxxx

Notice: Undefined variable: name in D:\xampp\htdocs\89\Exercise\2016-7-28 PHP function\007quanju.php on line 16

shifang

在PHP的頁面中聲明的變數,叫“全域變數”.

函數內的變數叫“局部變數”.

二者沒有半毛錢關係:函數內的變數,外部無法調用,函數外的變數,函數無法調用

(某戲班子到某學校唱戲,兩者的花名冊都不可相互調用)

靜態變數:

  • PHP支援聲明函數變數為靜態(static)。

  • 一個靜態變數在所有對該函數的調用之間共用,並且僅在指令碼的執行期間函數第一次被調用時被初始化。

  • 要聲明函數變數為靜態用關鍵字static,通常,靜態變數的第一次使用時賦予一個初始值。

<?phpfunction tongji(){    static $n = 0;    echo $n;    $n++;}tongji();tongji();tongji();echo '<hr>';function jishu(){    $m = 0;    echo $m;    $m++;}jishu();jishu();jishu();

輸出結果:
0123

00000

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.