內容導讀:
掌握函式的定義、呼叫,以及引數傳遞
掌握變數函式庫中經典函式
掌握日期時間、數學、檔案系統及 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 協議》,轉載必須註明作者和本文連結