《PHP与MySQL入门学习指南.ppt》由会员分享,可在线阅读,更多相关《PHP与MySQL入门学习指南.ppt(18页珍藏版)》请在人人文库网上搜索。

1、PHP5與MySQL5 入門學習指南,第 14 章 自定函數,凱文瑞克 著,本章大綱,14-1 建立函數 14-2 參數的傳遞 14-3 預設參數值 14-4 可變長度參數 問題與討論,14-1 建立函數,自定函數的格式如下 Function 自定函數名稱 ($arg1, $arg2, . $argn) 函數敘述 ; return 函數返回值 ; 自定函數以 Function 開始, 表示後面要定義一個函數。緊接著就是函數的名稱。$arg 表示傳入函數的參數, 參數依序排列以 , 做分隔。函數敘述就是設計者希望處理資料的內容, 可以是單行或多行指令。最後 return 是表示以函數的名稱回傳一。

2、個值給主程式, 當然主程式也必須要有一個變數來接受函數的回傳值。如果要傳回多個值則必須利用 list函數來接收函數傳回的值,1: 數量 : $amount n; 4: echo 金額: .$price * $amount. ; 5: 6: ? 7: 8: 自定函數 9: 10: 18: 19:,第 2-5 行定義一個 Pay 函數, 第 3 行顯示商品價格和數量, 第 4 行顯示商品金額. 在這個範例中函數並沒有回傳值. 第 11-12 價格 ($Price) 和數量 ($Amount). 第 13 行呼叫 Pay 函數同時將價格及數量傳入函數. 經函數處理後如圖 14-1 顯示前三行的結果.。

3、 第 14-15 行重新定義價格和數量. 第 16 行第 2 次呼叫 Pay 函數. 當然傳入 Pay 函數的是第 14-15 行新設定的價格及數量. 經函數處理後如圖 顯示後三行的結果,1: 數量 : $amount n; 4: $S=$price * $amount ; 5: return $S ; 6: 7: ? 8: 9: 自定函數 10: 11: ; 16: $Price=60 ; 17: $Amount=50 ; 18: $total2 = Pay($Price, $Amount) ; /第二次呼叫函數 19: echo 金額 : $total2 ; 20: $total2+=$t。

4、otal1; 21: echo 總金額 : $total2 ; 23: ? 24: 25:,函數 Pay() 會計算總價並利用變數回傳給 $total, 最後將二項商品金額顯示在網頁上,1: ; 4: return array(Hello, My, friend); 5: 6: ? 7: 8: 多個回傳值 9: 10: ; 13: echo $msg1 $msg2 $msg3; 14: ? 15: 16:,第 2-5 行定義函數 message(). 第 4 行利用 array() 傳回 3 個文字串. 有 3 個文字串自函數傳回來, 所以第 11 行利用 list() 接收回傳值, 第 1 。

5、個回傳值對應第 1 個變數 $msg1, 依此類推. 第 13 行顯示接收的三個變數,14-2 參數的傳遞,自定函數的參數傳遞可以分成二種方式 傳址呼叫 傳值呼叫,14-2-1 傳值呼叫(Call By Value,傳值呼叫的方式是由主程式傳遞變數的值給自訂函數的參數,1: ; 4: echo Price : $Price Amount : $Amount n; 5: $Total=$Price * $Amount ; 6: echo Total in Function Pay : $Total n ; 7: 8: ? 9: 10: 傳值呼叫 11: 12: ; 18:echo Price :。

6、 $Price Amount : $Amount n; 19:echo Total in main : $Total ; 20: ? 21: 22:,範例是使用傳值呼叫, 所以一開始第 15 行 $Total 起始值為 0, 然後第 16 行傳入 Pay 時會複製一個 0 的值給 Pay 中的 $Total。此時主程式 $Tota l與 Function Pay() 的 $Total 是分別二個不同變數。經函數計算之後第 5 行 $Total 值就變成 9000 而主程式 $Total 值是 0 不會改變, 因為這二者之間並沒有關係。所以在圖 14-2 中可以看到在 Function Pay(。

7、) 的 $Total=9000, 而在 main 中 $Total 為 0,14-2-2 傳址呼叫(Call By Reference,傳址呼叫是傳入變數的位址而不是值, 所以函數參數是接受主程式傳來的一個位址。因此參數會指向原變數 由於 PHP 5 的預設值不予許使用 call by reference 因此需要將 PHP.INI 中的allow_call_time_pass_reference設定為 on才可以使用,1: ; 4: echo Price : $Price Amount : $Amount n; 5: $Total=$Price * $Amount ; 6: echo Tot。

8、al in Function Pay : $Total n ; 7: 8: ? 9: 10: 傳址呼叫 11: 12: ; 18:echo Price : $Price Amount : $Amount n; 19:echo Total in main : $Total ; 20: ? 21: 22:,第 2 行參數 $Total 前面加上 4:$total=$price * $amount ; 5:echo Total in Function Pay : $total n ; 6:echo n ; 7: 8: ? 9: 10: 選擇傳遞方式 11: 12: n ; 18:Pay($Price。

9、, $Amount, 20: ? 21: 22:,Pay 函數一共被呼叫二次, 第 16 行第一次呼叫 Pay 函數是屬於傳值呼叫的方式。第 18 行第二次呼叫是傳址呼叫, 在呼叫函數時傳入參數的寫法是 4:echo 數量 : $amount 個 ; 5:$showcnt=$discount*10 ; 6:echo 折扣 : $showcnt 折 ; 7:return $price*$amount*$discount ; 8: 9: ? 10: 11: 預設參數 12: 13: ; 17:$Discount=0.5 ; 18:$cost=Pay($Price, $Amount, $Discou。

10、nt) ; /傳入$Discount參數 19:echo 總價 : $cost 元n ; 20:echo 一般折扣: ; 21:$cost=Pay($Price, $Amount) ;/未傳入$Discount, 以預設值帶入 22:echo 總價 : $cost 元 ; 23: ? 24: 25:,discount 被設定了預設值為 0.8。當參數設定預設值之後, 一旦函數呼叫時未傳入參數值, 參數值就會被預設值所取代,第一點, 預設值必須是一個常數, 不可以是變數。 第二點, 預設值的參數必須是在參數列的右邊開始, 由右向左延伸。這一點很容易理解, 如果有一函數如下 Function te。

11、st ($A=10, $B) 在函數呼叫時僅傳入一個數值 test (20) ; 這個時候 20 是應該傳給 $A 還是 $B ? 由此可知上面的寫法有問題。如果函數改寫如下: Function test($B, $A=10) 則函數呼叫 test(20) ; /$B=20, $A=10(預設值) test(20,15) ; /$B=20, $A=15 這樣無論是傳入一個參數或二個參數都不會混淆。所以凡是參數有預設值則必須寫在參數列的最右邊開始依序向左延伸,使用預設值的注意事項,14-4 可變長度參數,一種參數傳輸技巧. 配合可變長度參數擷取參數時所使用的函數. func_num_args()。

12、 會傳回傳入參數的個數. func_get_ars(n) 會傳回第 n 個參數, 參數是由第 0 個開始計算. 如果 n 值大於參數個數則會傳回 False. func_get_args() 將所有參數以陣列方式傳出,1: ; 5: echo 參數內容如下; 6: $op=func_get_args(); 7: for ($i=0; $i; 9: 10: 11: ? 12: 13: 可變長度參數 14: 15: ; 17: var_len(10,20); 18: echo ; 19: echo 3個參數 ; 20: var_len(Hello,My,Friend); 21: ? 22: 23:,var_len() 函數並沒有指定函數個數, 由是透過 func_num_args()等函數取讀參數個數與內容,問題與討論,參數傳遞時,何謂傳值呼叫與傳址呼叫? 何謂預設參數?使用時需注意什麼? 請將第 9 章問題4之商品價格計算式改成自訂函數,並將非會員折扣設定為預設參數。 請改寫第 12 章問題 6,將每個數學計算各自寫成一個自訂函數。 請比較固定參數與可變長度參數 如何傳回一個以上的參數。

php入门教程ppt,PHP与MySQL入门学习指南.ppt相关推荐

  1. 视频教程-Access2013数据库入门教程3查询部分-MySQL

    Access2013数据库入门教程3查询部分 十几年管理软件开发实战经验.从事IT行业十 余年,多年IT技术培训经验,课程编排重在实用 ,讲解通俗易懂. 王西猛 ¥39.00 立即订阅 扫码下载「CS ...

  2. 视频教程-Access2013数据库入门教程2窗体部分-MySQL

    Access2013数据库入门教程2窗体部分 十几年管理软件开发实战经验.从事IT行业十 余年,多年IT技术培训经验,课程编排重在实用 ,讲解通俗易懂. 王西猛 ¥39.00 立即订阅 扫码下载「CS ...

  3. 视频教程-Access2013数据库入门教程4报表部分-MySQL

    Access2013数据库入门教程4报表部分 十几年管理软件开发实战经验.从事IT行业十 余年,多年IT技术培训经验,课程编排重在实用 ,讲解通俗易懂. 王西猛 ¥39.00 立即订阅 扫码下载「CS ...

  4. 苹果手机上运行python_Python新手入门教程_在手机上就能学习编程的软件

    Python新手入门教程_在手机上就能学习编程的软件 很多小伙伴会问:我在学编程,想利用坐地铁坐公交吃饭间隙学编程,在手机上能学编程的软件有哪些?毕竟时间宝贵啊!!哈哈哈!!! 这个问题,在悟空回答的 ...

  5. PR软件入门教程 Adobe Premiere Pro 快速入门指南

    原文(包含图片)链接:https://www.prjianji.com/1.html 了解如何开始使用面向电影制作人.电视节目制作人.新闻记者.学生和视频制作人员的非线性编辑软件 Premiere P ...

  6. python 手机编程termux_Python新手入门教程_在手机上就能学习编程的软件

    Python新手入门教程_在手机上就能学习编程的软件 很多小伙伴会问:我在学编程,想利用坐地铁坐公交吃饭间隙学编程,在手机上能学编程的软件有哪些?毕竟时间宝贵啊!!哈哈哈!!! 这个问题,在悟空回答的 ...

  7. python手机开发的软件_Python新手入门教程_在手机上就能学习编程的软件

    Python新手入门教程_在手机上就能学习编程的软件 很多小伙伴会问:我在学编程,想利用坐地铁坐公交吃饭间隙学编程,在手机上能学编程的软件有哪些?毕竟时间宝贵啊!!哈哈哈!!! 这个问题,在悟空回答的 ...

  8. 【ppt入门教程】PPT2013如何加上自己公司LOGO PPT中加上LOGO操作方法

    转载者: 免费ppt素材 搜索: PPT中加上LOGO操作方法 ppt入门教程 PPT2013如何加上自己公司LOGO 在用PowerPoint2013为公司做演示文稿时,建议大家给自己的PPT每一页 ...

  9. python入门教程非常详细-Python编程入门教程:从入门到高级,非常详细

    本文的资料和内容是我下载的,觉得非常有用,于是转过来大家瞧瞧: 这里给初学Python的朋友提供一些建议和指导吧.大神请无视, 俗话说:授人以鱼不如授人以渔.所以我这里只是阐述学习过程,并不会直接详细 ...

最新文章

  1. 开源项目哪家强?Github年终各大排行榜超级盘点(内附开源项目学习资源)
  2. CCAI 2020 | 史元春:走出AI伦理困境「演讲回顾」
  3. 【模型解读】pooling去哪儿了?
  4. JDATA绝对语义识别挑战大赛-季军方案
  5. mysql-5.6.16-win32_mysql-5.6.16-win32免安装配置方法
  6. 启动失败代码2_菲斯曼燃气壁挂炉故障代码大全及解决方法
  7. jquery on()方法和bind()方法的区别
  8. ANDROID深度探索(卷1)HAL与驱动开发 第四章
  9. Linux内存管理:函数调用图谱-1
  10. 直线距离uva 11168 Airport(训练指南)
  11. 视觉SLAM十四讲学习笔记——ch10 后端2
  12. 网络安全工具100强介绍与下载
  13. Thinkpad SL400开启蓝牙
  14. 日立仪器安捷伦系统不能连接到服务器,【维修案例】安捷伦E5071C网络分析仪开机无法正常进入系统...
  15. 3、SPSS做非参数检验
  16. 猫、路由器、交换机的区别
  17. P3191 [HNOI2007]紧急疏散EVACUATE
  18. 怎样才能把pdf文件转换成jpg
  19. 云原生IDE:iVX首个通用且强大无代码开发平台
  20. Linux内核设计与实现 原书第3版中文版pdf

热门文章

  1. 推荐几款提升效率Intellij IDEA 神级插件!
  2. 基于jsp mysql的二手物品交易系统_jsp+mysql高校二手物品交易系统设计
  3. pyserial_API函数说明
  4. 初来乍到,请多关照。。。
  5. android混合开发!带你一起探究Android事件分发机制,终获offer
  6. 今日推荐课程:机器学习极简入门
  7. [Extjs6]清除数组内容
  8. 怎么获取红米Note 4X的Root权限
  9. 端到端模型(end-to-end)与非端到端模型
  10. java根据出生日期自动计算年龄(工具类)