函數體現了代碼的重用性;就是不用老是寫同一個代碼段;
1.函數的定義;
關鍵詞:
function functionName(parameters){
code;
}
- <?php
- //定義函數Text;
- function Text(){
- echo "i'm the text"."<br />";
- }
- $ret = Text();
- //測試返回值;
- if (is_null($ret)){
- echo "null";
- }else{
- echo "$ret";
- }
- ?>
無帶return 的函數 ,返回了一個NULL ,這是我測試的結果 ;
2.函數的參數;
1.按值傳參
2.引用傳參
- <?php
- $intT1 = 1;
- $intT2 = 1;
- //按傳值傳參
- function Test($can1,$can2){
- $can1++;
- $can2++;
- echo "\$can1 = $can1"."<br />";
- echo "\$can2 = $can2"."<br />";
- }
- Test($intT1,$intT2);
- echo "\$intT1 = $intT1"."<br />";
- echo "\$intT2 = $intT2"."<br />";
- // 結果爲:
- // $can1 = 2
- // $can2 = 2
- // $intT1 = 1
- // $intT2 = 1
- // 即 形參改變了,但原來的變值量沒有變;
- function Test1(&$can1,&$can2){
- $can1++;
- $can2++;
- echo "\$can1 = $can1"."<br />";
- echo "\$can2 = $can2"."<br />";
- }
- Test1($intT1,$intT2);
- echo "\$intT1 = $intT1"."<br />";
- echo "\$intT2 = $intT2"."<br />";
- // 結果:
- // $can1 = 2
- // $can2 = 2
- // $intT1 = 2
- // $intT2 = 2
- // 說明了,引用傳參。原來的變量值也會改變
- ?>
默認參數值;
- <?
- //如果沒有傳參,則;爲默認值 ;
- function Test($arg1 = 0; $arg2 = 0){
- }
- ?>
2.函數的返回值;
上面剛剛試過說,如果函數沒有設置return 返回值,則返回null;所以我們可以用return 來設置返回值 ;
- <?
- function RetTest(){
- return 123;
- }
- ?>
也可以返回object等等;只要設置相應類型的變量接收;
返回多個值 ;比如說數組;
- <?
- function RetTest(){
- $user = array("the peo","the box","the text","the run");
- return $user;
- }
- list($arg1,$arg2,$arg3,$arg4) = RetTest();
- echo $arg1.$arg2.$arg3.$arg4;
- ?>
用list() 設置變量來接收返回多組值 ;
3.遞歸函數;即調用自身函數;(這方面小弟運用起來比較爛;大家百度發揮吧)
- <?php
- function Refunction($arg1){
- if ($arg1 == 10 ){
- return $arg1;
- }
- else
- return Refunction ($arg1+1);
- }
- $RET = Refunction(5);
- echo $RET;
- ?>
4 函數庫;
把一些常用的函數寫成一個文件,到需要的時候 ,要
include()或require;進來
- <?php
- //test2.php
- function addint ($arg1,$arg2){
- return $arg1+$arg2;
- }
- function jianint ($arg1,$arg2){
- return $arg1-$arg2;
- }
- ?>
- <?
- include "test2.php";
- $TestAdd = addint(1,2);
- echo $TestAdd."<br />";
- $Testjian = jianint(2,1);
- echo $Testjian;
- ?>
結果:
3
1