PHP 函式

wwwhjw1688comH16228719999發表於2021-03-23

內容導讀:

掌握函式的定義、呼叫,以及引數傳遞

掌握變數函式庫中經典函式

掌握日期時間、數學、檔案系統及 MySQL 中的經典函式


1 函式

1.1 定義和呼叫函式

函式,就是將一些重複使用到的功能寫在一個獨立的程式碼塊中,在需要時單獨呼叫。

基本語法格式為:

 function fun_name($str1,$str2…$strn){  fun_body; }

說明:function:為宣告自定義函式時必須使用到的關鍵字。

fun_name:為自定義函式的名稱。

$str1,$str2…$strn:為函式的引數。

fun_body:為自定義函式的主體,是功能實現部分。

當函式被定義後,所要做的就是呼叫這個函式。呼叫函式的操作十分簡單,只需要引用函式名並賦予正確的引數即可完成函式的呼叫。

1.2 在函式間傳遞引數

在呼叫函式時需要向函式傳遞引數,被傳入的引數稱為實參,而函式定義的引數為形參。引數傳遞的方式有按值傳遞按引用傳遞預設引數3 種。

a.按值傳遞方式按值傳遞是指將實參的值複製到對應的形參中,在函式內部的操作針對形參進行,操作的結果不會影響到實參,即函式返回後,實參的值不會改變。

b.按引用傳遞方式引用傳遞就是將實參的記憶體地址傳遞到形參中。這時,在函式內部的所有操作都會影響到實參的值,返回後實參的值會發生變化。引用傳遞方式就是傳值時在原基礎上加&號即可。

c.預設引數(可選引數)預設引數即可選引數。可以指定某個引數為可選引數,將可選引數放在引數列表末尾,並且指定其預設值

1.3 從函式中返回值

通常,函式將返回值傳遞給呼叫者的方式是使用關鍵字 return。其將函式的值返回給函式的呼叫者,即將程式控制權返回到呼叫者的作用域。

注意:如果在全域性作用域內使用 return 關鍵字,那麼將終止指令碼的執行。

1.4 變數函式

也稱作可變函式。如果一個變數名後有圓括號,PHP 將尋找與變數的值同名的函式,並且將嘗試執行它。這樣就可以將不同的函式名稱賦給同一個變數,賦給變數哪個函式名,在程式中使用變數名並在後面加上圓括號時,就呼叫哪個函式執行。

function add($a,$b){ return $a+$b;}function mul($a,$b){ return $a*$b;}$result="add";echo $result(1,2);//呼叫add函式

類似物件導向中的多型特性。變數函式還可以被用於實現回撥函式函式表

1.5 對函式的引用

按引用傳遞引數可以修改實參的內容。引用不僅可用於普通變數、函式引數,也可作用於函式本身。對函式的引用,就是對函式返回結果的引用。函式定義和呼叫兩處地方都需要加上&才是對函式的引用。

<?phpfunction &test(){    static $b=0;//申明一個靜態變數    $b=$b+1;    echo $b;    return $b;}//注意test()、&test()異同;$a=test();//這條語句會輸出 $b的值為?$a=5;$a=test();//這條語句會輸出 $b的值為?$a=&test();//這條語句會輸出 $b的值為?$a=5;$a=test();//這條語句會輸出 $b的值為??>

注意: 函式的引用返回多用在物件中。

1.6 取消引用

當不再需要引用時,可以取消引用。取消引用使用unset()函式。

注意:unset()只是斷開了變數名和變數內容之間的繫結,而不是銷燬變數內容。

2 變數函式庫

除了使用者自行編寫的函式庫外,PHP 自身也提供了很多內建的函式,變數函式庫就是其中一個。但並不是所有的函式都會經常用到。

  • empty^[1]^ — 檢查一個變數是否為空

  • gettype^[2]^ — 獲取變數的型別

  • intval^[3]^ — 獲取變數的整數值

  • is_array^[4]^ — 檢測變數是否是陣列

  • is_int^[5]^ — 檢測變數是否是整數

  • is_numeric^[6]^ — 檢測變數是否為數字或數字字串

  • isset^[7]^ — 檢測變數是否已設定並且非 null

  • print_r^[8]^ — 以易於理解的格式列印變數。

  • settype^[9]^ — 設定變數的型別

  • unset^[10]^ — 釋放給定的變數

  • var_dump^[11]^ — 列印變數的相關資訊

更多請參閱: PHP 手冊>函式參考>變數與型別相關擴充套件>Variable handling

if(isset($_POST['Submit']) && $_POST['Submit']=="登入"){ //通過isset()函式對登入按鈕進行判斷$user=$_POST['user'];    //通過 $_POST陣列呼叫表單文字域的值$pass=$_POST['pass']; if(empty($user)||empty($pass)){   //通過if語句判斷使用者名稱或是密碼不能為空  echo "<script>alert('使用者名稱或密碼不能為空');</script>"; //使用者名稱或是密碼為空時,給出提示 }}

3.其他常用函式庫

3.1 字串函式庫

  • addcslashes^[12]^ — 以 C 語言風格使用反斜線轉義字串中的字元

  • addslashes^[13]^ — 使用反斜線引用字串

  • explode^[14]^ — 使用一個字串分割另一個字串

  • echo^[15]^ — 輸出一個或多個字串

  • ltrim^[16]^ — 刪除字串開頭的空白字元(或其他字元)

  • md5^[17]^ — 計算字串的 MD5 雜湊值

  • strlen^[18]^ — 獲取字串長度

  • str_ireplace^[19]^ — str_replace 的忽略大小寫版本

  • substr_replace^[20]^ — 替換字串的子串

  • strchr^[21]^ — 別名 strstr

  • substr_replace^[22]^ — 替換字串的子串

  • strtr^[23]^ — 轉換指定字元

  • substr^[24]^ — 返回字串的子串

  • trim^[25]^ — 去除字串首尾處的空白字元(或者其他字元)

更多請參閱: PHP 手冊>函式參考>文字處理

3.2 日期時間函式庫

  • checkdate^[26]^ — 驗證一個格里高裡日期

  • date^[27]^ — 格式化一個本地時間/日期

  • microtime^[28]^ — 返回當前 Unix 時間戳和微秒數

  • mktime^[29]^ — 取得一個日期的 Unix 時間戳

  • strftime^[30]^ — 根據區域設定格式化本地時間/日期

  • strptime^[31]^ — 解析由 strftime 生成的日期/時間

  • strtotime^[32]^ — 將任何字串的日期時間描述解析為 Unix 時間戳

  • time^[33]^ — 返回當前的 Unix 時間戳

更多請參閱: PHP 手冊>函式參考>日期與時間相關擴充套件

3.3 數學函式庫

  • ceil^[34]^ — 進一法取整

  • mt_rand^[35]^ — 生成更好的隨機數

  • mt_srand^[36]^ — 播下一個更好的隨機數發生器種子

  • rand^[37]^ — 產生一個隨機整數

  • round^[38]^ — 對浮點數進行四捨五入

  • floor^[39]^ — 捨去法取整

  • fmod^[40]^ — 返回除法的浮點數餘數

  • mt_getrandmax^[41]^ — 顯示隨機數的最大可能值

  • max^[42]^ — 找出最大值

  • min^[43]^ — 找出最小值

更多請參閱: PHP 手冊> 函式參考> 數學擴充套件> Math

3.4 檔案系統函式庫

  • basename^[44]^ — 返回路徑中的檔名部分

  • copy^[45]^ — 拷貝檔案

  • file_exists^[46]^ — 檢查檔案或目錄是否存在

  • file_get_contents^[47]^ — 將整個檔案讀入一個字串

  • file_put_contents^[48]^ — 將一個字串寫入檔案

  • file^[49]^ — 把整個檔案讀入一個陣列中

  • filetype^[50]^ — 取得檔案型別

  • fopen^[51]^ — 開啟檔案或者 URL

  • fread^[52]^ — 讀取檔案(可安全用於二進位制檔案)

  • is_dir^[53]^ — 判斷給定檔名是否是一個目錄

  • is_uploaded_file^[54]^ — 判斷檔案是否是通過 HTTP POST 上傳的

  • mkdir^[55]^ — 新建目錄

  • move_uploaded_file^[56]^ — 將上傳的檔案移動到新位置

  • readfile^[57]^ — 輸出檔案

  • rmdir^[58]^ — 刪除目錄

  • unlink^[59]^ — 刪除檔案

更多請參閱: PHP 手冊> 函式參考>檔案系統相關擴充套件

3.5 MySQL 函式庫

  • mysql_close^[60]^ — 關閉 MySQL 連線

  • mysql_connect^[61]^ — 開啟一個到 MySQL 伺服器的連線

  • mysql_create_db^[62]^ — 新建一個 MySQL 資料庫

  • mysql_errno^[63]^ — 返回上一個 MySQL 操作中的錯誤資訊的數字編碼

  • mysql_error^[64]^ — 返回上一個 MySQL 操作產生的文字錯誤資訊

  • mysql_fetch_array^[65]^ — 從結果集中取得一行作為關聯陣列

  • mysql_fetch_assoc^[66]^ — 從結果集中取得一行作為關聯陣列

  • mysql_fetch_field^[67]^ — 從結果集中取得列資訊並作為物件返回

  • mysql_fetch_object^[68]^ — 從結果集中取得一行作為物件返回

  • mysql_fetch_row^[69]^ — 從結果集中取得一行作為列舉陣列

  • mysql_num_rows^[70]^ — 取得結果集中行的數目

  • mysql_query^[71]^ — 傳送一條 MySQL 查詢

  • mysql_select_db^[72]^ — 選擇 MySQL 資料庫

更多請參閱: PHP 手冊> 函式參考>資料庫擴充套件>針對各資料庫系統對應的擴充套件 >MySQL> Mysql(原始)

3.6 陣列函式庫

  • count^[73]^ — 計算陣列中的單元數目,或物件中的屬性個數

  • array_push^[74]^ — 將一個或多個單元壓入陣列的末尾(入棧)

  • array_pop^[75]^ — 彈出陣列最後一個單元(出棧)

  • array_unique^[76]^ — 移除陣列中重複的值

  • array_keys^[77]^ — 返回陣列中部分的或所有的鍵名

  • array_search^[78]^ — 在陣列中搜尋給定的值,如果成功則返回首個相應的鍵名

  • explode^[79]^ — 使用一個字串分割另一個字串並存入陣列

  • implode^[80]^— 將一個一維陣列的值轉化為字串

  • arsort^[81]^ — 對陣列進行逆向排序並保持索引關係

  • asort^[82]^ — 對陣列進行排序並保持索引關係

  • in_array^[83]^ — 檢查陣列中是否存在某個值
    www.dhlnw.com
    rezhajuanban.com/
    www.rezhajuanban.com/
    glahyyb.com
    www.glahyyb.com
    turuiblog.com
    www.turuiblog.com
    styletg.com
    www.styletg.com
    dhlnw.com

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章