1、函式的定義

與Java相比,除了在語法上有些區別以外(弱型別),其它沒有什么區別,
函式的回傳值型別由return陳述句的運算式確定,
【思考1】如果函式內沒有return陳述句,或者有一條沒有運算式的return陳述句,那么函式的回傳值是什么?

【思考2】函式的定義放在什么位置?
(1) 如果與呼叫函式的陳述句在一個檔案中,放在這個檔案中的任意位置都可以,保持結構完整和獨立就可以,
(2)如果函式單獨放在獨立的php檔案中,需要在使用函式前使用require或include陳述句把這個檔案包含進來,
require ’functionfile.php’;
【思考3】理解什么是形參,什么是實參?

形參必然是變數,是該函式的區域變數,實參可以是運算式,也可以是變數,但有時必須是變數(當函式引數定義為變數的參考時),在函式呼叫時,會進行由實參的資料型別向形參的資料型別轉換的程序(即資料型別以形參為準)
2、函式的默認引數
PHP不支持函式的多載(函式名相同但引數不同)
默認引數,就是當函式呼叫時,如果不給引數賦值,用程式員定義的默認值代替,(相當于函式多載時,引數的個數不同了)
默認引數,只能自右向左依次定義為默認引數,

3、函式的變長引數
變長引數,就是用陣列變數(形參)來接受不確定個數的引數串列(實參),

變長引數必須是最右邊的引數,
...運算子,除了在用于定義變長引數為,還可以用來將陣列轉換為串列:
$nums = array(10,20,30,40,50);
echo sum(...$nums);
4、函式的參考引數
同C、Java一樣,呼叫函式時,形參獲得實參的一個拷貝,是獨立的存盤空間(堆疊中分配),不同的是,PHP中,不管是基本型別(標量型別)還是字串、陣列、類物件,都是拷貝,
要使形參和實參(必須是變數)共用存盤空間,引數必須定義為參考

5、可變函式和匿名函式
函式也是一種型別(復合型別callable),另兩種復合型別是array和object,
因此可以將函式名(字串)賦值給變數,通過變數來呼叫函式,

如果是給變數賦值或作為另一函式實參時,臨時使用的函式,這個臨時定義時,可以不給函式起名字,稱為匿名函式,

6、變數的作用域
在程式中(函式外)定義的變數,雖然是全域變數,但函式內部還不能使用,必須先用global關鍵字宣告,如$int1,或者使用$GLOBALS陣列
也可以在函式內部定義全域變數,如$int2,

函式內定義的靜態變數(static),意見同C、Java一樣,初始化值賦值后,再次呼叫該函式時不再初始化,保持上一次呼叫時該變數的值,

7、檔案包含
一個php檔案中,要引入另一個php檔案的代碼,可以用下面陳述句中的一個來將另一個php檔案包含進來,所以,我們常將函式庫或類代碼放在獨立的php檔案中,需要的時候包含進來,

8、常用數學函式
請注意熟悉如round,ceil,floor等取整函式,max,min等統計函式,進制轉換函式,sin,cos,exp等數值計算函式,M_PI,M_E等預定義常量的使用
PHP 5 Math函式請參閱:
http://www.runoob.com/php/php-ref-math.html
9、常用日期函式
PHP沒有日期/時間函式,使用Unix時間戳(1970-1-1 00:00:00以來的秒數)來記錄時間,所以使用整數來表示時間,
要正確設定php的時區,
$time0 = 1583889120;
$time1 = mktime(9,30,0,3,11,2020);
$time2 = time()+24*60*60;
$time3 = strtotime("+1 days",time());
輸出日期時間時,用date函式進行格式化,常用Y-m-d H:i:s
echo date("Y-m-d H:i:s",$time2);
格式字串參見:http://php.net/manual/zh/function.date.php
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/75647.html
標籤:PHP
下一篇:Python代碼注釋的用法和意義
