PHP函数的定义
函數(shù)就是功能。封裝一段用于完成特定功能的代碼。調(diào)用一個函數(shù)就是在調(diào)用一個功能。
1. 函數(shù)分類
內(nèi)置函數(shù):
PHP函數(shù)中有一些內(nèi)置函數(shù),這些函數(shù)是不能隨便進行更改的;
strtoupper() 和 strtolower()是兩個內(nèi)置的函數(shù),用于對字符串進行大小寫轉(zhuǎn)換。
自定義函數(shù)
function generate_table($row, $col){$html = '<table>';for ($i = 1; $i <= $row; ++$i) {$html .= '<tr>';for ($j = 1; $j <= $col; ++$j){ $html .= '<td></td>';}$html .= '</tr>';}return $html.'</table>'; } echo generate_table(5,5);以上是使用自定義函數(shù)將表格生成器定義為一個函數(shù)。
2. 函數(shù)的基本語法格式
unction 函數(shù)名([參數(shù)1, 參數(shù)2, ……]){函數(shù)體…… }function:在聲明函數(shù)時必須使用的關(guān)鍵字
函數(shù)名:要符合PHP的標識符,且函數(shù)名是唯一的,不區(qū)分大小寫
[參數(shù)1, 參數(shù)2…]:外界傳遞給函數(shù)的值,它是可選的,多個參數(shù)之間使用逗號“,”分隔。
函數(shù)體:函數(shù)定義的主體,專門用于實現(xiàn)特定功能的代碼段。
返回值:需要使用return關(guān)鍵字將需要返回的數(shù)據(jù)傳遞給調(diào)用者。
3. 參數(shù)設(shè)置
對于函數(shù)來說,參數(shù)的不同設(shè)置,決定了其調(diào)用和使用方式。
無參函數(shù)
適用于不需要提供任何數(shù)據(jù)即可完成指定功能的情況。
function shout(){return 'come on'; } echo shout(); // 輸出結(jié)果:come on按值傳遞函數(shù)
這種方式定義的函數(shù),在函數(shù)內(nèi)部可以隨意對用戶傳遞的參數(shù)進行操作。
function add($a, $b){$a = $a + $b;return $a; } echo add(5, 7); // 對于有參數(shù)的函數(shù)做調(diào)用時,不僅可以直接傳值,還可以使用變量代替。 $x = 5; $y = 7; echo add($x, $y);引用傳參
如需要修改參數(shù)值,則需要通過函數(shù)參數(shù)的引用傳遞,在參數(shù)前面加 & 即可。
function extra(&$str){$str .= ' and some extra'; } $var = 'food'; extra($var); // 輸出結(jié)果:food and some extra echo $var;設(shè)置參數(shù)默認值
函數(shù)參數(shù)在設(shè)置時,還可以為其指定默認值,也就是可選參數(shù)。當調(diào)用者未傳遞該參數(shù)時,函數(shù)將使用默認值進行操作。
function say($p, $con = 'say "Hello"'){return "$p $con"; } // 輸出結(jié)果:Tom say "Hello" echo say('Tom');指定參數(shù)類型(弱)
當用戶調(diào)用函數(shù)時,如果傳遞的參數(shù)不是int類型,程序會將其強制的轉(zhuǎn)換為int型后,再進行操作,這種方式稱為弱類型參數(shù)設(shè)置。
function sum1(int $a, int $b){return $a + $b; } echo sum1(2.6, 3.8); // 輸出結(jié)果:5指定參數(shù)類型(強)
還可以將其設(shè)置為強類型的參數(shù),即當用戶傳遞的參數(shù)類型不符合函數(shù)的定義,程序會報錯提醒。
declare(strict_types = 1); function sum2(int $a, int $b){return $a + $b; } echo sum2(2.6, 3.8); // 輸出結(jié)果:Fatal error: ......4. 變量的作用域
變量只有在定義后才可使用,但并不是說變量定義后就能隨時使用,只有在其作用范圍內(nèi)才可以被使用,這個作用范圍叫作用域。
在函數(shù)內(nèi)部定義的變量稱為局部變量,在函數(shù)外部定義的變量稱為全局變量。
默認情況下,函數(shù)中不能使用全局變量,同時局部變量的改變也不會對全局變量有任何影響。
總結(jié)
- 上一篇: 我的互助小蜜圈
- 下一篇: PHP操作文件的常用函数