- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PHP5與MySQL5 入門學習指南 第 14 章 自定函數 本章大綱 14-1 建立函數 14-2 參數的傳遞 14-3 預設參數值 14-4 可變長度參數 問題與討論 14-1 建立函數 14-2 參數的傳遞 自定函數的參數傳遞可以分成二種方式 傳址呼叫 傳值呼叫 14-2-1 傳值呼叫(Call By Value) 傳值呼叫的方式是由主程式傳遞變數的值給自訂函數的參數。 14-2-2 傳址呼叫(Call By Reference) 傳址呼叫是傳入變數的位址而不是值, 所以函數參數是接受主程式傳來的一個位址。因此參數會指向原變數 由於 PHP 5 的預設值不予許使用 call by reference 因此需要將 PHP.INI 中的allow_call_time_pass_reference設定為 on才可以使用. 14-3 預設參數值 在自訂函數撰寫時可以事先給予參數一個預設值, 當主程式呼叫函數時有二種選擇。 第一種如果主程式有傳值給函數, 則函數中參數值即以主程式傳入的值代入。 第二種如果主程式沒有傳值給函數, 則以函數將以函數定義的預設值帶入參數。 其格式如下function func_name(arg1, arg2=n) { 函數內容 }說明:func_name 為函數名稱, arg1 是第一個參數, 第二個參數是 arg2, 其預設值為 n. 14-4 可變長度參數 一種參數傳輸技巧. 配合可變長度參數擷取參數時所使用的函數. func_num_args() 會傳回傳入參數的個數. func_get_ars(n) 會傳回第 n 個參數, 參數是由第 0 個開始計算. 如果 n 值大於參數個數則會傳回 False. func_get_args() 將所有參數以陣列方式傳出. 問題與討論 參數傳遞時,何謂傳值呼叫與傳址呼叫? 何謂預設參數?使用時需注意什麼? 請將第 9 章問題4之商品價格計算式改成自訂函數,並將非會員折扣設定為預設參數。 請改寫第 12 章問題 6,將每個數學計算各自寫成一個自訂函數。 請比較固定參數與可變長度參數 如何傳回一個以上的參數? * PHP5與MySQL5入門學習指南 凱文瑞克 著 自定函數的格式如下 Function 自定函數名稱 ($arg1, $arg2, ... $argn) { 函數敘述 ; return 函數返回值 ; } 自定函數以 Function 開始, 表示後面要定義一個函數。緊接著就是函數的名稱。$arg 表示傳入函數的參數, 參數依序排列以 , 做分隔。函數敘述就是設計者希望處理資料的內容, 可以是單行或多行指令。最後 return 是表示以函數的名稱回傳一個值給主程式, 當然主程式也必須要有一個變數來接受函數的回傳值。如果要傳回多個值則必須利用 list函數來接收函數傳回的值。 1: ?php 2: Function Pay($price,$amount) { 3: echo 價格 : $price br 數量 : $amount br\n; 4: echo 金額: .$price * $amount.p ; 5: } 6: ? 7: html 8: title自定函數/title 9: body 10: ?php 11: $Price=90 ; 12: $Amount=100 ; 13: Pay($Price, $Amount) ; //第一次呼叫函數 14: $Price=60 ; 15: $Amount=50 ; 16: Pay($Price, $Amount) ; //第二次呼叫函數 17: ? 18: /body 19: /html 第 2-5 行定義一個 Pay 函數, 第 3 行顯示商品價格和數量, 第 4 行顯示商品金額. 在這個範例中函數並沒有回傳值. 第 11-12 價格 ($Price) 和數量 ($Amount). 第 13 行呼叫 Pay 函數同時將價格及數量傳入函數. 經函數處理後如圖 14-1 顯示前三行的結果. 第 14-15 行重新定義價格和數量. 第 16 行第 2 次呼叫 Pay 函數. 當然傳入 Pay 函數的是第 14-15 行新設定的價格及數量. 經函數處理後如圖 顯示後三行的結果. 1: ?php 2: Function Pay($price,$amount) { 3: echo 價格 : $price br 數量 : $amount br\n; 4: $S=$price * $amount ; 5: return $S ; 6: } 7: ? 8: html 9:
文档评论(0)