12、函數: 函數的功能: 定義:在真實的項目開發過程中,有些代碼會重覆利用,我們可以把它提出來,做成公共的代碼,供團隊來使用,這個我們封裝的代碼段,就是函數(功能)。 優點: 1、提高代碼的利用率。 2、減少開發時間。 3、減少代碼冗餘。 4、可維護性提高。 5、方便調試代碼。 函數的定義格式: ...
12、函數:
函數的功能:
定義:在真實的項目開發過程中,有些代碼會重覆利用,我們可以把它提出來,做成公共的代碼,供團隊來使用,這個我們封裝的代碼段,就是函數(功能)。
優點:
1、提高代碼的利用率。
2、減少開發時間。
3、減少代碼冗餘。
4、可維護性提高。
5、方便調試代碼。
函數的定義格式:
function 函數名(參數1 = 值1,參數2 = 值2,參數3 = 值3,。。。。。。。。。)
{
函數體代碼
return 返回值
}
類別:
類庫函數:
is_null () ,is_array (),is_string ();
自定義函數:
(就是我們自己寫的函數,根據項目開發過程當中,咱們根據需求自己編寫出來的函數,可以供大家一起使用。)
【function】:
定義函數的關鍵字。
函數命名規範:
與咱們的變數名幾乎一樣
1、函數名不區分大小寫。
2、函數名字使用英文,遵循規範。
3、數字可以夾在中間或者後面。
4、下劃線不屬於特殊符號。
5、不用特殊符號。
6、命名的時候要有意義。
7、遵循駝峰或者下劃線。
8、不能使用系統給咱們的函數名還有系統的關鍵字。
基本格式:
1、函數都要以關鍵字function 開始。
2、函數名後面要緊跟小括弧
3、小括弧下麵跟著大括弧,大括弧後面是函數體。
4、函數調用需要函數名加上小括弧;
沒有參數,沒有返回值。
有參數,沒有返回值。
function show($name = '張三' ,$val = '程式員') //$name = '',$val = '';
{
echo '我的名字是'.$name.'我的職業是'.$val.'<br />';
}
參數就是:name,val
如果你寫多個的話,用逗號隔開,可以寫多個,沒有上限。
就相當於 張三 賦值給name。
有參數有返回值
重點:
return:
只是返回並沒有輸出。
return後面代碼不執行
return:
1、return關鍵字只要碰到立馬結束,後面代碼統統不執行。
2、如果你想有多個返回值的時候,用數組去弄。
3、函數調用表達式的值就是函數的返回值。
預設參數:
1、預設參數就是不傳參的時候用的那個變數。
2、如果你傳了參數,就用傳過來的值。
3、如果形參帶有預設參數,一般放到後面。
4、如果沒有預設參數,你必須給參數傳值,不然會報錯。(js不是)
註意事項:
1、函數必須要function開始定義。
2、function後面加空,加函數名,加空格,加小括弧。
3、函數名和變數名字命名規則基本一樣,唯一不一樣的是,不區分大小寫。
4、函數名後面跟括弧,括弧裡面跟參數(就是變數)。
5、如果有預設參數,用等號,等號後面是你要跟的值。
6、調用函數的時候裡面傳入的值(實參),就是把函數體外的變數的值拿到函數體內來使用。
7、函數體外的變數和函數體內的變數通常不是一個變數。
8、函數可以有返回值,也可以沒有返回值,你如果想返回的話,你用return 關鍵字返回。
9、函數的調用跟你定義的順序沒有半毛錢關係,但是變數不是。
10、函數可以多次調用,沒有事。
1 <?php 2 function name() { 3 echo '這首歌真好聽';} 4 name (); 5 echo '<br />'; 6 function info($name = '李四',$val = '程式員') { 7 echo '我的名字是'.$name.'我的職業是'.$val.'<br />';} 8 info (); 9 function show($name = '張三',$val = '醫生') { 10 echo '他的名字是'.$name.'他的職業是'.$val.'<br />';} 11 show (); 12 function info2($name = '王五',$val = '警察') { 13 echo '我的名字是'.$name.'職業是'.$val.'<br />';} 14 info2 ('趙六','教師'); 15 ?>
1 <?php 2 function say ($name = '張三',$age = 11,$sex = '男') { 3 echo '性名:'.$name.'<br />'; 4 echo '年齡:'.$age.'<br />'; 5 echo '性別:'.$sex.'<br />'; 6 return '這是我的簡介。'; 7 echo 111;} 8 echo say ('李四'); 9 ?>
超全局變數:
1 <?php 2 function say () { 3 var_dump($GET);} 4 var_dump($GET); 5 say(); 6 ?>
靜態變數:
1 <?php 2 function sum () { 3 $num = 1; 4 $num++; 5 echo $num;} 6 sum (); 7 sum (); 8 sum (); 9 sum (); 10 echo '<br />'; 11 function sum1 () { 12 static $num = 1; 13 $num++; 14 echo $num;} 15 sum1 (); 16 sum1 (); 17 sum1 (); 18 sum1 (); 19 ?>
形參和返回值的類型的約束:
function sum (int $num1, int $num2) //形參的;
{
return $num1+$num2;
}
sum(2,3);
//小括弧後面加上:加上數值類型,把函數體返回的值給轉成你限定的類型。
匿名函數:
所謂的匿名函數就是沒有名字。
//如果你想用,賦值給一個變數,然後該怎麼調用就怎麼調用,變數加上(),跟普通函數調用一樣。
$func = function () {}
$func();
1 <?php 2 function sum1($num1,$num2){ 3 return $num1+$num2;} 4 var_dump(sum(1,2)); 5 echo '<br />'; 6 function sum2($num1,$num2){ 7 return $num1+$num2;} 8 var_dump(sum('1','2')); 9 echo '<br />'; 10 function test(...$arr) { 11 var_dump($arr);} 12 test('abc',1,2,3,123,'cc'); 13 echo '<br />' 14 function test1 ($a,$b,$c,$d) { 15 var_dump ($a,$b,$c,$d);} 16 $arr = [1,'wang',1.87,'big']; 17 test1(...$arr); 18 echo '<br />'; 19 $func = function () { 20 echo '匿名函數';}; 21 $func (); 22 23 ?>
13、常用函數:
數學函數:
1、隨機:rand,mt_rand
2、小數:floor:向上取整;
ceil:向下取整;
round:四捨五入法取整;
3、其他:abs:絕對值;
pi:圓周率;
M_PI:常量,與pi()函數的返回值相同;
pow:指數表達式;
max:最大值;
min:最小值;
字元串函數:
1、大小寫轉換:
strtolower:轉換為小寫;
strtoupper:轉換為大寫;
lcfirst:首字母小寫;
ucfirst:首字母大寫;
ucwords:每個單詞首字母大寫;
2、空白處理:
trim:去掉首尾的空白字元;
ltrim:去掉開頭的空白字元;
rtrim/chop:去掉結尾的空白字元;
3、查找定位:
strstr/strchr:返迴首次出現到結尾的內容;
strrchr:返回最後一次出現到結尾的內容;
stristr:strstr忽略大小寫的版本;
strpos:返迴首次出現的位置;
stripos:strpos忽略大小寫版本;
strrpos:返回最後一次出現的位置;
strripos:strrpos忽略大小寫版本;
substr:子串提取,可以通過下標方式獲取單個字元($str{n});
strpbrk:返回(字元列表中任意字元)首次出現到結尾的內容;
4、比較:
strcmp:二進位比較字元串;
strcasecmp:strcmp忽略大小寫;
strnatcmp:自然順序比較;
strnatcasecmp:strnatcmp的忽略大小寫版本;
5、順序:
str_shuffile:打亂順序;
strrev:逆序字元串;
6、轉換:
chr:將ASCⅡ碼值轉換為字元;
ord:返回字元串的ASCⅡ碼值;
數組常用函數:
1、數組中元素指針的移動:
next:向後移動,指向下一個元素;
prev:向前移動,指向前一個元素;
end:指向最後一個元素;
reset:複位,重新指向第一個元素;
2、鍵和值相關的操作:
key:獲取數組當前元素的鍵;
current/pos:獲取數組當前元素的值;
array_keys:獲取所有的鍵;
array_values:獲取所有的值,併為其建立數字索引;
array_key_exists/key_exists:判斷給定的鍵是否在數組中;
in_array:判斷給定的值是否在數組中;
array_search:根據值返回給定的鍵名;
array_count_values:統計數組中所有的值出現的次數;
3、添加刪除元素:
array_shift:將數組開頭的元素移出數組;
array_unshift:向數組開頭添加一個或更多個元素;
array_push:向數組末尾壓入一個或多個元素;
array_pop:彈出數組末尾的一個元素;
4、排序相關:
shuffile:將數組打亂(轉換為索引數組);
sort:對數組進行排序(排序之後重新索引);
resort:對數組進行逆向排序;
asort:對數組進行排序並保持索引關係;
natsort:用自然順序演算法對數組進行排序;
natcasesort:natsort忽略大小寫的版本;
ksort:對數組按照鍵名進行排序;
krsort:對數組按照鍵名逆向排序;
usort:使用用戶自定義的比較函數對數組的值進行排序;
uasort:使用用戶自定義的的比較函數對數組的值進行排序並保持索引關係;
uksort:使用用戶自定義的比較函數對數組的鍵名進行排序;
5、元素運算:
array_sum:計算數組中的所有值的和;
array_product:計算數組中所有值的乘積;
count/sizeof:計算數組中元素的個數;
6、創建數組:
range:建立一個包含指定範圍單元的數組(可以指定步幅,可以指定遞減);
compact:創建一個包含變數與其值的數組;
extract:從數組中將變數導入到當前的符號表(與compact功能相反);
array:新建一個數組;
array_merge:合併一個或多個數組(關聯會覆蓋,索引會重新索引,若想保留索引可以使用'+')
array_merge_recursive:遞歸合併一個或多個數組;
array_combine:用一個數組的值作為鍵名,另一個數組的值作為值創建數組;
7、其他:
array_chunk:將數組分割成指定長度的小數組;
array_map:將回調函數作用到每個元素上,返回處理的結果數組(新數組);
array_walk:將回調函數作用到每個元素上(會改變原數組),返回真假;
array_filter:使用回調函數過濾數組(回調函數返回真的才會出現在結果中);
array_flip:返回交換鍵和值後的新數組;
array_rand:隨機從數組中抽取一個或多個元素的鍵;
array_replace:使用後面的數組中元素替換第一個數組中的元素;
array_reverce:返回一個單元順序相反的數組(關聯數組會保持鍵值對應,索引數組需要傳遞第二個參數);
array_unique:移出數組中重覆的值。
1 <?php 2 $num = rand(1,6); 3 ehco $num; 4 echo '<br />'; 5 $num1 = mt_rand(1,6); 6 echo '$num1'; 7 echo '<br />'; 8 $num2 = 5.4; 9 ehco floor($num2); 10 echo '<br />'; 11 $num3 = 6.1; 12 echo ceil($num3); 13 echo '<br />'; 14 $str = 'ABCdef'; 15 echo strtolower($str); 16 echo '<br />'; 17 $str1 = 'ABCdef'; 18 echo strtoupper($str1); 19 echo '<br />'; 20 $str2 = 'abcdefg'; 21 echo substr($str2,2,4); 22 echo '<br />'; 23 echo strpos($str2,'c'); 24 ?>
14、文件函數:
1 <?php 2 function add(){ 3 echo '這是資料庫添加方法'} 4 function del() { 5 echo '這是刪除方法';} 6 function update (){ 7 echo '這是修改方法';} 8 function select() { 9 echo '這是查詢方法';} 10 11 ?>
1 <?php 2 include(mysql/wenjianbaohan.php); 3 add(); 4 ?>
<?php require('mysql/wenjianbaohan.php') select (); ?>
require和include的區別:
require('......')這個函數一般放在php文件最前面,程式在執行前就會先導入要引用的文件;
include('......')這個函數一般放在程式的流程式控制制裡面。只有程式在執行碰到才會引用。可以簡化程式的執行流程。
require:一個文件存在錯誤時,執行就會中斷,並返回一個致命錯誤。
include:一個文件存在錯誤時,程式不會中斷執行,會彈出一個警告。