一、自定義函數
function 函數名([形式參數1,形式參數2,....形式參數n]){
//各種PHP代碼....
//......
return 表達式;//也可以不返回,如果不寫那么默認返回null
}
函數的調用:
函數的調用需要遵循定義函數的時候寫的規則,一一對應,將具體的實際參數傳給定義函數時候寫的形式參數!
調用函數之后執行的過程是相對獨立的,互補干擾,默認沒有聯系!
執行完畢返回調用的位置繼續向下執行
函數的返回值:
返回給調用者,默認返回null
函數比喻成我們現實生活中的 某個零件的制造部門!
參數:原材料或者是這個零件的一些具體的參數!
二、PHP變量的范圍
1.局部變量
function test(){
$a=1;//局部變量$a,盡在這個函數內部有效
}
echo $a;
2.全局變量
$i=10;//全局變量(外部變量)
define('MY_NAME','孫勝利');
function test(){
echo MY_NAME;
global $i;//聲明$i為全局變量,然后再這個函數內部就可以使用$i
echo $i;
$a=1;
}
test();
3.靜態變量
function test(){
static $a=10;//靜態變量$a,初始化靜態變量,盡在第一次調用的時候執行
echo ++$a;//當第二次執行這個函數的時候$a這個變量依然存在並且里面的也值依然存在!
}
test();
echo '<br />';
test();
echo '<br />';
test();
echo '<br />';
test();
echo '<br />';
test();
echo '<br />';
test();
echo '<br />';
test();
三、參數的傳遞
1.按值傳遞參數
默認的,我們在傳遞參數的時候默認使用的就是這個方式!
對形式參數的操作,根本不是影響到實際參數(變量)的值,兩者相當於沒有聯系!
2.按引用傳遞參數
按引用傳遞參數,相當於形式參數和實際參數指的是同一個人,只是名字不一樣,對於形式參數的操作會直接影響到實際參數(變量);
3.函數的默認參數
可以給形式參數設置默認值,設置方法很簡單直接賦值即可!
給形式參數加默認值的時候是重右往左加的,右邊的必須有,才能夠給左邊的加!
4.可變長度參數列表
PHP提供給我們的,可以直接使用
func_get_args();
func_get_arg();
func_num_args();
這三個函數可以使用在我們的自定義函數內部,能夠返回給我們一些關於參數的信息!
四、可變函數(變量函數)
直接把函數賦值給變量
/* 可變函數 */
function test(){
echo '測試函數2';
}
$a='test';
$a();//test();
可變函數不能用於例如 echo,print,unset(),isset(),empty(),include,require 以及類似的語言結構。需要使用自己的包裝函數來將這些結構用作可變函數。