PHP學習筆記之PHP函數(三)

認識php函數

  • 函數可以使程序更具模塊化,擁有良好的結構;
  • 函數分爲內置函數和自定義函數;
  • 函數名不區分大小寫,不過在調用函數的時候,通常使用其在定義時相同的形式;
  • php不支持函數重載, 所以自定義函數不能和內置函數重名;

函數參數的傳遞

1.值傳遞(傳值):函數內對參數值的改變不會影響函數外部的值;
2.引用傳遞(傳址):有些情況下,可能希望在函數體內對參數的修改在函數體外也能反映;
  • 使用引用傳遞參數要在參數前加上&符號;
  • 變量本身傳入,傳入後的變量與原變量建立聯繫,函數體內變量的變化,會影響到原變量本身;
3.默認參數值:可以爲參數指定默認值,在沒有提供其他值的情況下,則將默認值自動賦;

函數中變量的作用域

1.局部變量
  • 函數體內定義的變量爲局部變量,只在函數體內可見;局部變量的作用域,從聲明它的那條語句開始到函數結束;
function(){
    $b = 5 ;
    echo "$b";
}
echo "$b";

以上代碼只有函數內的"$b"能夠輸出,函數外的"$b"獲取不到

2.全局變量
  • 函數體外定義的變量爲全局變量,與局部變量相反,全局變量可以在程序的任何地方訪問;
  • 如果在函數體中需要使用全局變量,使用 global 關鍵字訪問;
  • 全局變量的作用域:從聲明它的那條語句開始到文件末尾;
function quanju(){
    //聲明$b爲全局變量,否則就是局部變量,注意聲明與賦值不能寫在同一行,先聲明後賦值
    global $b;
    $b = 5;
}
quanju();
echo();

以上代碼,函數外能輸出函數裏面的變量

3.靜態變量
  • 局部變量在函數退出時會被撤消,與局部變量不同,靜態變量在函數退出時不會丟失值,並且再次調用函數時還能保留這個值;
  • 在變量名前面加上 static 關鍵字就可以聲明一個靜態變量
function fn(){
    static $c =0; //相當於將$c return出去
    $c ++;
    echo "$c";
}
fn();
fn();
fn();
  • 以上代碼的$c在fn重新調用時不會被改變爲0;而是保留上次運行結束時的值

函數庫(include,require)

通常將常用的函數組織到函數庫中,可以在以後類似的應用程序中重複使用。
  • 調用函數庫中的函數時使用include()或require()將函數庫包含到腳本中;
  • includeonce()/requireonce() 的作用與include()/require()相同,不過它會首先驗證是否已經包含了該文件,如果已經包含,則不再執行;

  1. 新建一個"show.php"文件 function show(){ echo "include加載成功" }
  2. 在另一個主文件件中訪問新建的文件,可以調用該函數 include("show.php"); show();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章