第13章 物件導向與例外處理 13-1 物件導向的基礎 13-2 類別與物件 13-3 類別的繼承 13-4 PHP的例外處理

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

第6章 類別與物件 – 封裝 6-1 物件導向的基礎 6-2 Java的類別與物件 – 封裝 6-3 類別的建構子
大葉大學 指導教授: 黃鈴玲 學生: 林慶南(工業工程與科技管理所)
計算機程式語言實習課.
08 CSS 基本語法 8-1 CSS 的演進 8-2 CSS 樣式規則與選擇器 8-3 連結HTML 文件與CSS 樣式表
第2章 物件導向技術導論 2-1 程式設計方法 2-2 抽象資料型態 2-3 物件導向的思維 2-4 物件導向技術的三大觀念
第4章 XML與Java物件導向程式設計 4-1 XML的基礎 4-2 類別與物件 4-3 類別的繼承 4-4 巢狀類別與匿名內層類別
第11章 過載與多形 11-1 方法的過載 11-2 運算子的過載 11-3 再談抽象類別與介面 11-4 多形的基礎 11-5 實作多形.
06 類別與物件. 06 類別與物件 6.1 類別與物件 目前的程式設計主流是物件導向 (OOP),Visual C# 已提供完整的物件導向功能。在物件導向設計裡,物件可以被封裝 ( 保護) 和繼承 ( 重複使用)。因為物件的封裝會使物件受到保護,要存取物件必須透過屬性 (Property)、方法.
陳維魁 博士 儒林圖書公司 第九章 資料抽象化 陳維魁 博士 儒林圖書公司.
11 繼承類別 11.4 建立者與破壞者 單一建立者與破壞者 11-20
第四組 停車場搜尋系統 第四組 溫允中 陳欣暉 蕭積遠 李雅俐.
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
Ch11 JAVA的例外處理 物件導向程式設計(II).
LINQ 建國科技大學 資管系 饒瑞佶.
Java簡介.
PHP與SQL語法存取MySQL SQL
JAVA 程式設計與資料結構 第七章 繼承與Interface.
Ch05 繼承 Java程式設計入門(2).
JAVA vs. SQL Server 建國科技大學 資管系 饒瑞佶 2013/4 V1.
2-3 基本數位邏輯處理※.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
JAVA 程式設計與資料結構 第六章 輸出與輸入.
第16章 VB.NET物件導向與.NET Framework
客戶端的檔案上傳 HtmlInputFile檔案控制項 上傳單一檔案 同時上傳多個檔案.
第15章 ADO.NET的資料庫存取 15-1 ADO.NET的基礎 15-2 建立SQL Server資料庫連接
Google Data API Spreadsheet
生物資訊程式語言應用 Part 3 Perl Language.
類別(class) 類別class與物件object.
SQL Stored Procedure SQL 預存程序.
ASP.NET基本設計與操作 建國科技大學 資管系 饒瑞佶 2007年.
程式設計(二) 進階類別 郭文真 Sabrina Kuo.
PHP5與MySQL5 入門學習指南 凱文瑞克 著 第 17 章 物件.
App Inventor2呼叫PHP存取MySQL
Java 程式設計 講師:FrankLin.
JAVA 程式設計與資料結構 第四章 陣列、字串與數學物件.
Php class 組員: 賴羿陵 林昱廷 莊正暉 張雅晴
Ch12 資料庫專案範例 物件導向系統實務.
Topic Introduction—RMI
第一單元 建立java 程式.
TB-054A  周天穎 編著 儒林圖書公司 發行.
Ch20. 計算器 (Mac 版本).
Pocket Access.
VB2005 DataBase Manipulation Command for Access
第 19 章 XML記憶體執行模式.
期末考.
挑戰C++程式語言 ──第8章 進一步談字元與字串
LINQ資料查詢技術.
Class & Object 靜宜大學資工系 蔡奇偉副教授 ©2011.
樣版.
C qsort.
MicroSim pspice.
OOP9 類別Class.
函數應用(二)與自定函數.
陣列與結構.
Chapter 15 檔案存取 LabVIEW中的檔案存取函數也可將程式中的資料儲存成Excel或Word檔。只要將欲存取的檔案路徑位址透過LabVIEW中的路徑元件告訴檔案存取函數後,LabVIEW便可將資料存成Excel或Word檔;當然也可以將Excel或Word檔的資料讀入LabVIEW的程式中。
第二章 Java基本语法 讲师:复凡.
進階UI元件:ListView元件以及複選 靜宜大學資管系 楊子青
Brief Guide of FrontPage
第四章 陣列、指標與參考 4-1 物件陣列 4-2 使用物件指標 4-3 this指標 4-4 new 與 delete
連結資料庫 MYSQL.
What is “this”? 在物件導向程式設計中,類別的定義就是在說明如果創建了“這個物件”的話,它會具有那些屬性與功能,以及這些功能是如何實現的。 而所謂的“這個物件”就以 this 來表示。 當我們在JavaScript與jQuery中寫 script 程式(函式)時,“誰”呼叫這個函式,這個“誰”就是該函式中所謂的.
String類別 在C語言中提供兩種支援字串的方式 可以使用傳統以null結尾的字元陣列 使用string類別
NFC (近場通訊, Near Field Communication) 靜宜大學資管系 楊子青
SQLite資料庫 靜宜大學資管系 楊子青.
第18章 網頁資料庫實例探討 18-1 PHP網頁資料庫實例說明 18-2 網頁通訊錄 18-3 使用者登入管理 18-4 BBS電子佈告欄
13 繼承類別 13.1 繼承概論 基礎類別與衍生類別 繼承型式 13-2
方法(Method) 函數.
InputStreamReader Console Scanner
Presentation transcript:

第13章 物件導向與例外處理 13-1 物件導向的基礎 13-2 類別與物件 13-3 類別的繼承 13-4 PHP的例外處理 13-5 物件導向介面的資料庫存取 13-6 應用實例:網路商店

13-1 物件導向的基礎 13-1-1 物件的基本觀念 13-1-2 物件導向程式語言

13-1-1 物件的基本觀念 – 說明 物件導向程式設計是一種更符合人性化的程式設計方法,因為我們本來就生活在物件世界,思考模式也遵循著物件導向的模式。 「物件」(Object)是物件導向技術的關鍵,以程式角度來說,物件是資料與此資料相關操作結合在一起的組合體,如下圖所示:

13-1-1 物件的基本觀念 - 特性 狀態(State):物件所有「屬性」(Attributes)目前的狀態值,屬性儲存物件的狀態,可以簡單的是布林值變數,也可能是另一個物件,例如:車子的車型、排氣量、色彩和自排或手排等屬性。 行為(Behavior):行為是物件可見部分提供的服務,可以作什麼事,例如:車子可以發動、停車、加速和換擋等。 識別字(Identity):識別字是用來識別不同的物件,每一個物件都擁有獨一無二的識別字,PHP語言是使用物件處理(Object Handles)的指標作為物件的識別字。

13-1-2 物件導向程式語言 - 說明 程式語言之所以稱為「物件導向程式語言」(Object-oriented Programming Language),主要是指程式語言支援三種特性: 封裝 繼承 多形

13-1-2 物件導向程式語言 - 封裝 封裝(Encapsulation) 封裝是將資料和處理資料的函數組合起來建立成物件。在PHP定義物件是使用「類別」(Class),屬於一種抽象資料型態,換句話說,就是替程式語言定義新的資料型態。

13-1-2 物件導向程式語言 - 繼承 繼承(Inheritance) 繼承是物件的再利用,當定義好類別後,其他類別可以繼承此類別的資料和方法,新增或取代繼承物件的資料和方法。

13-1-2 物件導向程式語言 - 多形 多形(Polymorphism) 多形屬於物件導向最複雜的特性,類別如果需要處理各種不同的資料型態,此時並不需要針對不同資料型態建立各別類別,可以直接繼承基礎類別,繼承此類別建立同名方法處理不同的資料型態,因為方法的名稱相同,只是程式碼不同,也稱為「同名異式」。

13-2 類別與物件 13-2-1 宣告類別與建立物件 13-2-2 成員變數與方法的存取 13-2-3 建構子與解構子 13-2-4 使用物件的成員變數 13-2-5 類別常數與靜態成員

13-2 類別與物件 PHP類別是物件的原型或藍圖,可以用來建立物件,屬於使用者自行定義的資料型態。類別的組成元素有兩種,如下所示: 成員資料(Data Member):物件的資料部分,也就是PHP變數、常數或其他物件的「成員變數」(Member Variables),即物件「屬性」(Properties)的狀態值。 成員函數(Member Functions):物件處理資料的PHP函數,稱為「方法」(Methods),即物件的行為。

13-2-1 宣告類別與建立物件 – PHP的類別宣告 在PHP是使用class關鍵字來宣告類別。例如:產生網頁內容的BookView類別,如下所示: class BookView { var $id; var $title; var $price; var $page; function header() { … } function content() { … } function footer() { … } function getPage() { … } }

13-2-1 宣告類別與建立物件 – 使用類別建立物件 13-2-1 宣告類別與建立物件 – 使用類別建立物件 在PHP程式可以將類別視為資料型態,使用new運算子建立物件。例如:使用BookView類別建立物件,如下所示: $page = new BookView(); 程式碼建立名為$page的物件變數,其資料型態是PHP的Object物件,這是使用BookView類別為藍圖所建立的物件。不過,$page儲存的並不是物件本身,而是一個物件處理(Object Handles)的數值,類似函數的傳址呼叫,可以讓PHP程式找到真正的物件所在。

13-2-1 宣告類別與建立物件 – 存取物件的成員變數 13-2-1 宣告類別與建立物件 – 存取物件的成員變數 在PHP程式建立物件後,就可以在程式碼指定成員變數的值,如下所示: $page->id = "P697"; $page->title = "JSP網頁設計範例教本"; $page->price = 650;

13-2-1 宣告類別與建立物件 – 呼叫物件的成員方法 13-2-1 宣告類別與建立物件 – 呼叫物件的成員方法 PHP物件可以使用存取成員變數的相同方法來呼叫成員方法,如下所示: $page->header(); $page->content(); $page->footer(); echo $page->getPage();

13-2-2 成員變數與方法的存取 – 三種修飾子 private修飾子:成員變數或方法只能在類別本身呼叫或存取。 public修飾子:成員變數或方法是物件對外的使用介面,可以讓PHP程式碼呼叫物件的成員方法或存取成員變數。如果沒有使用修飾子,預設是public。例如:上一節BookView類別使用var宣告的成員變數或方法,都是public。 protected修飾子:成員變數或方法可以在類別本身和其子類別存取或呼叫,類別的子類別稱為繼承,詳細說明請參閱第13-3節。

13-2-2 成員變數與方法的存取 - 範例 例如:本節程式範例是修改自第13-2-1節的BookView類別,如下所示: class BookView { var $id; public $title; public $price; protected $page; function header() { … } public function content() { … } private function bookInfo() { … } function footer() { … } function getPage() { … } }

13-2-2 成員變數與方法的存取 - 工具函數 bookInfo()函數宣告成private外,其他方法是類別的使用介面。 bookInfo()方法因為只提供給類別的成員方法content()呼叫,所以宣告成private,此種方法也稱為「工具函數」(Utility Functions)。

13-2-3 建構子與解構子 - 說明 類別建構子(Constructors)是物件的初始函數,在建立物件時會自動呼叫此函數來指定成員變數值、開啟資料庫連接或檔案等操作。 解構子(Destructors)對應建構子是物件的善後函數,在建立物件後,自動呼叫此函數來釋放佔用資源或處理一些善後工作。例如:關閉資料庫連接或寫入資料至記錄檔(Log File)。

13-2-3 建構子與解構子 – 統一的建構子方法 PHP類別擁有統一的建構子方法名稱__construct()。例如:BookView類別的建構子方法,如下所示: class BookView { ………… function __construct($id, $title, $price = 650) { echo "指定成員變數值...<br>"; $this->id = $id; $this->title = $title; $this->price = $price; }

13-2-3 建構子與解構子 – 統一的解構子方法 PHP類別統一的解構子方法名稱為__destruct()。例如:BookView類別的解構子方法,如下所示: class BookView { ………… function __destruct() { $fp = fopen("Ch13_2_3.html", "w"); echo "建立HTML檔案Ch13_2_3.html...<br/>"; if (fwrite($fp, $this->page)) echo "將網頁內容寫入HTML檔案成功...<br/>"; else echo "寫入HTML檔案失敗...<br/>"; fclose($fp); // 關閉檔案 }

13-2-4 使用物件的成員變數 PHP類別的成員變數還可以是其他物件的物件變數。例如:在BookView類別的宣告擁有Author物件,如下所示: class BookView { private $id; private $title; private $author; private $price; private $page; function __construct($id,$title,$author,$price=650) { $this->id = $id; $this->title = $title; $this->author = new Author($author); $this->price = $price; } ………… class Author { public $name; function __construct($name) { $this->name=$name; } }

13-2-5 類別常數與靜態成員 - 類別常數 在PHP類別宣告可以定義常數。例如:在Student類別宣告最大學生數的MAX_STUDNETS常數,如下所示: class Student { const MAX_STUDENTS = 50; ………… } 程式碼宣告類別常數MAX_STUDENTS,常數不用「$」符號。在PHP程式碼可以使用類別名稱Student和「::」運算子來取得常數值,如下所示: echo "最大學生數: ".Student::MAX_STUDENTS."<br/>";

13-2-5 類別常數與靜態成員 – 靜態成員變數與方法(宣告) 13-2-5 類別常數與靜態成員 – 靜態成員變數與方法(宣告) 在PHP類別宣告可以使用static宣告靜態成員的類別變數和方法。例如:在Student類別宣告類別變數$teacher、$count和類別方法numOfStudents(),如下所示: class Student { ………… public static $teacherNo = "CS1002"; private static $count = 0; static function numOfStudents() {return self::$count;} }

13-2-5 類別常數與靜態成員 – 靜態成員變數與方法(使用) 13-2-5 類別常數與靜態成員 – 靜態成員變數與方法(使用) 程式碼可以使用類別名稱Student和「::」運算子存取變數值和呼叫類別方法,如下所示: echo "指導老師編號: ".Student::$teacherNo."<br/><hr/>"; echo "<hr/>目前學生數: ".Student::numOfStudents()."<br/>"; 在類別宣告的成員方法存取類別的靜態成員時,需要使用self關鍵字來存取,如下所示: self::$count++; return self::$count;

13-3 類別的繼承 13-3-1 類別繼承的基礎 13-3-2 類別的繼承 13-3-3 覆寫父類別的成員方法 13-3-4 PHP的類別與物件函數

13-3 類別的繼承 「繼承」(Inheritance)是物件導向程式設計的進階觀念,繼承是一個類別直接繼承現存類別的部分或全部的成員資料和方法,並且新增額外的成員資料或方法,或是覆寫繼承類別的方法。

13-3-1 類別繼承的基礎 - 說明 類別如果是繼承自其他類別,我們稱此類別為繼承類別的「子類別」(Subclass)或「延伸類別」(Derived Class),繼承類別稱為「父類別」(Superclass)或「基礎類別」(Base Class),例如:類別Car是繼承自類別Vehicle,此時的繼承關係,如右圖所示:

13-3-1 類別繼承的基礎 - 兄弟類別 如果有多個子類別繼承同一個父類別,則每一個子類別稱為「兄弟類別」(Sibling Classes),如右圖所示:

13-3-2 類別的繼承 - 父類別 PHP的繼承只能有一個父類別,不支援多重繼承,即同時繼承多個父類別,繼承可以擴充現有類別的功能。例如:父類別Vehicle的宣告,如下所示: class Vehicle { private $no; function setNumber($no) { … } protected function showVehicle() { … } }

13-3-2 類別的繼承 - 子類別 以轎車Car子類別宣告為例,PHP可以使用extends關鍵字擴充父類別,如下所示: class Car extends Vehicle { private $doors; function __construct($no, $doors = 4) { … } function showCar() { … } }

13-3-2 類別的繼承 - 呼叫父類別的成員函數 在子類別Car的建構子或成員方法可以呼叫父類別的成員方法,使用的是parent關鍵字,如下所示: parent::setNumber($no); 上述程式碼在「::」前是parent,表示呼叫父類別的成員方法,以此例是setNumber()成員方法。

13-3-3 覆寫父類別的成員方法 - 說明 在父類別的成員方法如果並不符合需求,我們可以在子類別宣告同名的成員方法來取代父類別的成員方法,稱為「覆寫」(Override)。

13-3-3 覆寫父類別的成員方法 - 父類別 例如:在Vehicle父類別擁有showVehicle()成員方法需要覆寫,如下所示: class Vehicle { private $no; function __construct($no) { … } protected function showVehicle() { … } }

13-3-3 覆寫父類別的成員方法 - 子類別 子類別Car繼承父類別Vehicle,如下所示: class Car extends Vehicle { private $doors; function __construct($no, $doors = 4) { … } function showVehicle() { … } }

13-3-3 覆寫父類別的成員方法 – 呼叫父類別的建構子 13-3-3 覆寫父類別的成員方法 – 呼叫父類別的建構子 因為父類別擁有__construct()建構子方法,如果子類別沒有建構子方法,就會自動呼叫父類別的建構子方法,在子類別可以使用parent關鍵字呼叫父類別的建構子,如下所示: parent::__construct($no);

13-3-4 PHP的類別與物件函數 函數 說明 class_exists(string) 檢查參數字串的類別名稱是否存在,存在傳回true;否則為false get_class($obj) 傳回參數物件的類別名稱 get_parent_class($obj) 傳回參數物件或類別字串的父類別名稱 get_object_vars($obj) 傳回參數物件成員變數的結合陣列,鍵值是變數名稱,元素值是變數值 get_class_methods(string) 傳回參數類別名稱字串的成員方法陣列 method_exists($obj,string) 檢查第1個參數物件是否有第2個參數的成員方法名稱,如果有,傳回true;否則為false is_subclass_of($obj,string) 檢查第1個參數物件是否是第2個參數類別名稱的子類別,如果是,傳回true;否則為false

13-4 PHP的例外處理 13-4-1 PHP的例外處理 13-4-2 繼承Exception類別

13-4-1 PHP的例外處理 - 說明 PHP的例外處理(Handling Exceptions)是一種流程控制的程式敘述,可以停止目前程式碼的執行,然後跳到指定區塊來處理錯誤。這些錯誤是一種例外物件(Exception),即在PHP程式執行期間,發生不正常執行狀態或錯誤時所產生的物件。

13-4-1 PHP的例外處理 - 產生例外物件 PHP內建的Exception類別可以建立例外物件,在PHP程式是使用throw指令丟出例外。例如:丟出Exception例外物件,如下所示: throw new Exception("密碼是空字串!"); 上述程式碼使用new運算子建立例外物件,建構子方法的第1個參數是例外說明字串,第2個參數是選項的數字錯誤碼。

13-4-1 PHP的例外處理 – 例外處理的程式敘述(架構) PHP語言的例外處理程式敘述分成try和catch兩個程式區塊,可以處理特定例外物件,如下所示: try { ……… } catch ( Exception $e ) { // 例外處理 }

13-4-1 PHP的例外處理 – 例外處理的程式敘述(說明) try程式區塊:在try區塊的程式碼檢查是否產生例外,當例外產生時,就丟出指定例外類型的物件。 catch程式區塊:在try程式區塊的程式碼如果丟出例外,PHP程式需要準備catch程式區塊來處理例外,傳入參數$e是例外物件,可以取得例外的相關資訊,如下所示: print "檔案: " . $e->getFile() . "<br/>"; print "行號: " . $e->getLine() . "<br/>"; print "錯誤訊息: " . $e->getMessage() . "<br/>";

13-4-2 繼承Exception類別 - 說明 PHP程式除了可以使用現成Exception類別建立例外物件外,也可以繼承Exception類別建立自訂的例外子類別,其主要目的如下所示: 在try/catch程式敘述可以區分不同錯誤產生的例外物件。 在子類別可以新增所需的成員方法。

13-4-2 繼承Exception類別 - 範例 例如:驗證密碼錯誤的ValidException例外類別宣告,如下所示: class ValidException extends Exception { function getMyMessage() { print "檔案: ".$this->getFile()."<br/>"; print "行號: ".$this->getLine()."<br/>"; print "錯誤訊息: ".$this->getMessage()."<br/>"; }

13-5 物件導向介面的資料庫存取 13-5-1 使用物件導向介面的資料庫存取 13-5-2 使用Prepared Statement執行SQL指令

13-5-1 使用物件導向介面的資料庫存取 – 建立物件執行查詢 13-5-1 使用物件導向介面的資料庫存取 – 建立物件執行查詢 PHP的ext/mysqli擴充程式可以使用物件導向介面來存取資料庫,如下所示: $mysqli = new mysqli("localhost","root",""); 上述程式碼使用new運算子建立$mysqli物件。在成功建立$mysqli物件後,就可以呼叫物件的相關方法來存取資料庫,如下所示: $mysqli->select_db("myschool"); $result = $mysqli->query($sql);

13-5-1 使用物件導向介面的資料庫存取 – 取出記錄資料 13-5-1 使用物件導向介面的資料庫存取 – 取出記錄資料 在取得$result物件後,取出記錄資料是呼叫$result結果物件的方法和存取成員變數,如下所示: $total_fields = $result->field_count; $total_records = $result->num_rows; while( $row = $result->fetch_assoc() ){ echo $row["sno"]."-".$row["name"]."<br/>"; } $result->close();

13-5-1 使用物件導向介面的資料庫存取 – 關閉資料庫連接 13-5-1 使用物件導向介面的資料庫存取 – 關閉資料庫連接 最後呼叫$mysqli物件的close()方法關閉資料庫連接,如下所示: $mysqli->close();

13-5-2 使用Prepared Statement執行 SQL指令 – 建立SQL指令 PHP的ext/myqli擴充程式支援Prepared Statement,可以預先建立SQL指令字串,然後使用參數來指定欄位值,如下所示: $sql ="INSERT INTO students (sno, name, address, "; $sql.="birthday) VALUES (?,?,?,?)"; 上述SQL指令INSERT擁有4個「?」號,表示這些欄位值是參數,尚未指定其值。

13-5-2 使用Prepared Statement執行 SQL指令 – 建立物件和對應變數值 接著可以呼叫mysqli_prepere()函數建立Prepared Statement物件$stmt,如下所示: $stmt = mysqli_prepare($link, $sql); 在建立$stmt物件後,就可以呼叫bind_param()方法,將參數對應到指定的變數值,如下所示: $stmt->bind_param("ssss",$sno,$name,$address, $birthday);

13-5-2 使用Prepared Statement執行 SQL指令 – 建立物件和指定變數值 $sno = $_POST["Sno"]; $name = $_POST["Name"]; $address = $_POST["Address"]; $birthday = $_POST["Birthday"];

13-5-2 使用Prepared Statement執行 SQL指令 – 執行SQL指令和關閉物件 現在我們已經建立完整SQL指令,可以呼叫$stmt物件的execute()方法執行SQL指令,如下所示: $stmt->execute(); echo "資料庫新增記錄成功, 影響記錄數: ". $stmt->affected_rows . "<br/>"; 最後需要呼叫close()方法關閉$stmt物件,如下所示: $stmt->close();

13-6 應用實例:網路商店 13-6-1 網路商店的程式架構 13-6-2 網路商店的使用 13-6-3 網路商店的程式說明

13-6 應用實例:網路商店 網路商店是一家銷售商品的虛擬店面,網路商店和一般商店一樣都是開店作生意,只不過是開在不同舞台,網路商店沒有實際店面,只是模擬現實生活的方式來採購商品,將選購商品放入購物車。

13-6-1 網路商店的程式架構 – 架構 網路商店是使用books資料表儲存圖書產品資料,網路商店購物車是直接使用WebForceCartCookies元件來實作,以物件儲存選購的商品資料,其架構如下圖所示:

13-6-1 網路商店的程式架構 – 資料庫 網路商店的MySQL資料庫【shop】擁有資料表books,其資料表欄位如下所示: 欄位名稱 MySQL資料類型 大小 欄位說明 bookid VARCHAR 6 書號(主鍵) booktitle 50 書名 bookauthor 10 作者 bookprice DOUBLE N/A 書價

13-6-2 網路商店的使用 – 首頁 網路商店在執行前請參考第10-5-2節執行shop.sql建立shop資料庫。接著啟動Internet Explorer執行PHP程式shop.php的網址:http://localhost/Ch13/Shop/shop.php,就可以顯示網路商店銷售的商品清單,即網路商店的產品目錄,如下圖所示:

13-6-2 網路商店的使用 – 選購商品和檢視購物車 13-6-2 網路商店的使用 – 選購商品和檢視購物車 在商品清單的【數量】欄位輸入購買數量,按【訂購】鈕,就可以將商品放入購物車。 按下方【檢視購物車內容】超連結,可以看到目前選購的商品清單、小計和總價,如下圖所示:

13-6-2 網路商店的使用 – 刪除選購商品 在購物車表格前按【刪除】超連結,就可以刪除選購商品。

13-6-3 網路商店的程式說明 網路商店應用實例共有5個PHP程式檔案,wfcart.php是WebForceCartCookies元件的類別檔,dataAccess.php是物件導向介面的資料庫存取類別。shop.sql可以建立shop資料庫。 PHP程式:shop.php 使用表格顯示銷售商品,和提供選購商品的表單欄位,商品內容是books資料表的記錄資料。 PHP程式:shoppingcart.php 網路商店購物車,這是呼叫wfCart物件的方法來一一取出選購的商品。 PHP程式:delete.php 刪除購物車中選購的商品,即呼叫del_item()方法。

End