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