- 1、本文档共81页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 PHP函數和變數的作用域 7.1 自訂函數 函數 函數是指可以按照“黑盒子”的方式思考我們周圍的許多要解決的問題,函數可讓使用者自由改變某些參數,而且都能產生合理回應的黑盒子。 自訂函數 自訂函數則是指程式設計師自行定義的函數程式,可以放在程式的最開頭,或是在程式前端include或require進來。 格式: 範例7-1:Ex7-1.php 圖7-1:函數程式實例 使用者自定函數名稱的命名有三個限制: 不能與 PHP 的內建函數名稱同名。例如名稱不能為 echo()。 函數名稱不能以數字開頭。 函數名稱不能使用 . (period),例如 add.integer() 就是一個錯誤的函數名稱。 7.2 參數傳遞與傳回值 call by value 與 call by reference PHP 支援 call by value 與 call by reference 兩種傳遞參數的方法,並且在函數執行結束後,可以利用 return 傳回一個值給呼叫的父程式。 call by value call by value 是呼叫父程式直接將值或變數傳給函數,因此該數值或變數被儲存於兩個不同的記憶體位置。當傳入一個變數時,在函數裡改變傳入的參數值對父程式的變數並不會造成影嚮。 範例7-2:Ex7-2.php 圖7-2:call by value程式實例 call by reference 利用 call by reference 傳入一個變數參考時,等於是將指向該變數的指標傳給函數,在函數裡改變該參考等於改變原來的變數值,因此可以達到改變原來變數值的效果。 call by reference二種做法 PHP 程式裡如果要傳遞參考 (call by reference) 的話,有二種做法 第1種方法 呼叫函數時在變數前加上 ,此時 add() 的寫法沒有什麼不同, 例如: add($a, $b); 範例7-3:Ex7-3.php 圖7-3:call by reference 1程式實例 第二種方法 是在函數的參數加上 範例7-4:Ex7-4.php 圖7-6:call by reference 2程式實例 參數預設值 參數預設值就是參數可以事先給予內定值,當我們未傳入該參數值時,可用內定值代替之。 範例7-5:Ex7-5.php 圖7-7:參數預設值程式實例 內定值少傳參數 有定義內定值的參數在呼叫該函數時可以省略不傳,但一定要放在所有參數的最右邊,否則 PHP 會誤以為您少給了一個參數。 範例7-6:Ex7-6.php 圖7-8:內定值少傳參數程式實例 傳回值。 由於一個函數只會有一個有效的 return值,所以只能有一個傳回值。 傳回多個值 如果要傳回多個值,可以利用傳回陣列的小技巧來達成 範例7-7:Ex7-7.php 圖7-9:傳回多個值程式實例 可變函數名稱 一般程式語言的函數名稱是在定義函數時即決定好,但 PHP可以讓我們將函數的名稱存放在一個變數裡,當呼叫這個變數時,即等於呼叫變數值相對應的函數。 範例7-8:Ex7-8.php 圖7-10:可變函數名稱程式實例 7.4變數影響範圍 變數影響範圍 變數的影響範圍通常是 global,自啟用起,至該程式結束均有效; 但在自定的函數中,變數的影響範圍是 local,則只侷限在函數內部。 範例7-9:Ex7-9.php 圖7-11:變數影響範圍程式實例 引用外部的變數 若希望在自定函數內引用外部的變數,則使用關鍵字 global 宣告,或是使用 global 變數陣列 $GLOBALS[ ]。 格式: 範例7-10:Ex7-10.php 圖7-12:global宣告變數程式實例 $GLOBALS[]變數陣列格式: 範例7-11:Ex7-11.php 圖7-13:$GLOBALS[]變數陣列程式實例 7.5 引用檔案 引用檔案 PHP程式要引用某個檔案,使用 require 或 include 兩個語法皆可,require 與 include 都是個語法,而非函數。 require require 的使用方法如 require(header.inc); 。 範例7-12 圖7-14:require程式實例 require_once require_once 的功能和 require 是幾乎相同的,唯一的差別在於 require_once 會先檢查要引入的檔案是不是已經在該程式中的其他地方被引入過了;如果有的話,就不會再次重複引入該檔案。 範例7-13:Ex7-13.php 圖7-15:require程式實例 include include 使用方法如 include(“header.php”);。 這個語法一般是放在流程控制的
文档评论(0)