函數:指的是,具有某種功能的代碼的集合。需要這個功能時,我們去執行(調用)相應的函數即可。結構化編程,將功能都封裝成一個個獨立的結構。抽象編程。每次使用功能時,定義功能 。 轉成 現將功能 製作成工具,然用時,使用工具就可以了。函數必須先定義再使用。按照函數的定義者分成:系統函數和使用者函數。函數的基本文法:定義函數的文法:Function 函數名(參數) {函數體}調用函數的文法:函數名(傳遞到函數的參數).函數的基本組成部分:函數名 函數的標誌參數 函數執行時的一些資料參考函數體(實現函數功能的代碼塊)函數的傳回值 (函數的執行結果,一個反饋資訊)定義: 調用: 其中的函數名部分,規則參考變數名命名規則即可,但是函數名不區分大小寫。但是注意 建議 怎麼定義 怎麼調用。 函數的參數部分:形式參數:函數在定義是所使用的參數,就叫做形式參數。形式參數是沒有具體值的。只有在調用時,才會被賦予某個值。簡稱 形參。 實際參數:函數在被調用時,會按照形式參數的規則,傳遞進來有實際意義的參數。此時就稱之為實際參數,簡稱實參。 通常情況下,形式參數在函數別調用時,都是一值傳遞的方式,來獲得實際參數的值。 與值傳遞相對,還有引用傳遞。如果需要參數引用傳遞,需要在定義時,在形參前,增加引用符號 &. 此時 當調用 max3時: 當我們在函數體內修改 變數 x,y,z的值時,此時會對a,b,c產生不同的影響: 如果是參數佔用很多資源, 為了提高效率,我們採用值還是引用? 引用。並不是要求所以的參數都是或者不是某種傳遞方式,可以在參數上單獨設定。 參數的預設值:我們可以在定義函數時,為函數的參數,設定預設值。這樣 當我們調用函數時,如果沒有為這個參數傳遞資料,則使用預設值來代替。 函數的傳回值:函數是使用return語句標誌傳回值。通常要求每個函數都有傳回值,但是文法上 還是可以沒有傳回值。當函數執行到 return語句時,函數運行結束。意味著 return語句後的所有函數體,都不需要再執行了。 一個函數可以有幾個傳回值?一個。可以有幾個return語句?多個。 一個函數通常只能有一個傳回值,那麼如果一個函數的功能要求 能夠返回兩個資料應該怎麼辦?怎麼才能讓一個函數同時影響兩個值?將兩個值 給封裝成一個集合類型的資料。利用參數的引用傳遞, Php的很多函數都是採用的引用傳遞達到 一個函數處理多個傳回值的目的:提示:如果參數是引用傳遞,則在調用時,必須是傳遞一個變數才可以。因為只有變數才能引用傳遞。 範圍問題:變數的範圍,因為有函數 才會有範圍的劃分。當變數被定義後,在哪些代碼中可以被使用。 某個變數是一定屬於哪個範圍的。大家需要知道 php有哪些範圍:全域範圍。 函數外屬於全域範圍。在全域範圍定義的變數,在全域範圍內可見。局部範圍。 函數內,就是某個函數形成局部範圍。在局部範圍內定義的變數是在局部可見的。超級全域: 既可以在函數內,也可以在函數外。在局部範圍 訪問 全域範圍變數。需要使用關鍵字global,在某個局部範圍內,聲明某個變數是全域的。 除了使用global關鍵字外,還可用如下的方法:Php會將所有的定義的全域變數,都放入到一個數組中。這個數組是$GLOBALS(超級全域)。其中 GLOBALS的每一個元素,就是一個全域變數,元素的下標,就是全域變數名,元素的值,就是變數值。 局部範圍 是在函數被調用時,才產生的。同樣 在函數 運行結束時,函數所產生的範圍隨之消失,範圍內的所有變數應該消失。全域範圍 是在php指令碼運行時 就會產生。在指令碼運行結束時消失。全域範圍內的變數也應該消失。在php內,支援局部範圍的靜態變數。範圍也屬於某個局部範圍。但是由於他是靜態,導致,在函數運行結束後,這個靜態變數是不會消失,會保持住原來的處理好的值。 靜態局部變數,只在當前函數的範圍內才生效。簡單小結一下:普通全域: 函數外普通局部: 函數內超全域: 所有地方靜態局部: 當前函數內,函數運行結束不消失。可以在下次調用時再使用。在局部使用全域: global $GLOBALS[] 作業參數的引用傳遞的作用?完成楊輝三角:第一列和對角線上的都是1,除此之外,值為 = 頭頂上的值+左肩上的值。111121133114641151010511615201561定義成一個函數 Yanghui(7); 參數為行數。Tip:利用雙重迴圈 和 數組的操作可以完成 列印星星要求定義一個函數 xingxing(4);