自定義函數
PHP內置了超過1000個函數,因此函數使得PHP成為一門非常強大的語言。大多數時候我們使用系統的內置函數就可以滿足需求,但我們也可以通過自定義函數對代碼進行復用。
定義:
1.使用關鍵字“function”開始
2.函數名可以是字母或下劃線開頭:function name()
3.在大括號中編寫函數體:
function functionName() {
// Contents for this function
}
調用:函數名(參數); //參數的個數可以是0~n個,若有多個,則采用逗號進行分割
舉例:
function sum($a, $b) {
echo $a + $b;
}
sum(1,2); // 調用函數計算1+2的值
返回值:使用return關鍵字可以使函數返回值,可以返回包括數組和對象的任意類型,如果省略了 return,則默認返回值為 NULL。
返回語句會立即中止函數的運行,并且將控制權交回調用該函數的代碼行。
注意:函數不能返回多個值,但可以通過返回一個數組來得到類似的效果。舉例:
function numbers() {
return array(1, 2, 3);
}
list ($one, $two, $three) = numbers();
可變函數
如果一個變量名后有圓括號,PHP 將尋找與變量的值同名的函數,并且嘗試執行它。
可變函數可以用來實現包括回調函數,函數表在內的一些用途。
function funcName() {
echo 'my function called.';
}
$name = 'funcName';
//調用可變函數
$name();
內置函數
PHP內置了很多標準的常用的處理函數,包括字符串處理、數組函數、文件處理、session與cookie處理等。
比如,內置函數str_replace
可以實現字符串的替換。下面的例子將“jobs”替換成“steven jobs”:
$str = 'i am jobs.';
$str = str_replace('jobs', 'steven jobs', $str);
echo $str;
// 結果為 “i am steven jobs”
調用函數之前要先判斷函數是否存在
使用function_exists
判斷一下函數是否存在。
舉例:
function func() {
}
if (function_exists('func')){
echo 'exists';
}
檢測可變函數的存在:
function func() {
echo 'exists';
}
$name = 'func';
if (function_exists($name) ) { //判斷函數是否存在
$name();
echo $name;
}
同樣的道理,我們可以使用class_exists
,method_exists
,file_exists
來檢查類,類的方法,文件是否存在:
class MyClass{
}
// 使用前檢查類是否存在
if (class_exists('MyClass')) {
$myclass = new MyClass();
}