Welcome to Scribd. Sign in or start your free trial to enjoy unlimited e-books, audiobooks & documents.Find out more
Download
Standard view
Full view
of .
Look up keyword
Like this
32Activity
0 of .
Results for:
No results containing your search query
P. 1
OOP in PHP part-4

OOP in PHP part-4

Ratings:

5.0

(1)
|Views: 1,509|Likes:
Published by Ford AntiTrust

More info:

Published by: Ford AntiTrust on May 06, 2008
Copyright:Attribution Non-commercial No-derivs

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF or read online from Scribd
See more
See less

05/09/2014

pdf

 
OOP in PHP
ตอนที ่ 
4
เก็บตก
OOP in PHP 5
สวัสดครับ สาหรับในตอนท  
4
น  เราจะพูดถึงเรื องราวการเขยนโปรแกรมเชิงวัตถุของ
PHP 5
กันบ้าง เพราะตอนท  
1-3
นั  จะเน้นไปในส่วนของ
PHP
 
4
ท มความง่ายและไม่ซับซ้อนมากนัก เพื อปูพื  นการเขยนเชิงวัตถุได้อย่างไม่น่าเบื อนั
 
โดยตอนน  เราจะเข้าส่วนของ
PHP 5
ด้วยเหตุผลด้านการสนับสนุนในอนาคตท  
PHP Group
นั  นจะเลิกสนับสนุนในวันท  
5
กุมภาพันธ์ 
2
551
น  โดยถ้าเป็นไปได้เราควรศึกษาใน
PHP 5
เลยเสยดกว่า และ
Web Hosting
ต่าง ๆ ในไทยเริ  สนับสนุนมากขึ  นแล้วเช่นกั
 
ซึ งเนื  อหาในตอนน  เราจะพูดถึงเรื อง
 
 
การกาหนดการเข้าถึงคุณสมบัติและแบบแผนพฤติกรรม ซึ งมอยู ่ใน
PHP 5
 
การสร้างพฤติกรรมพื  นฐานในแบบฉบับของ
PHP5
โดยจริง ๆ แล้วยังมอกมากในรายละเอยดของการเขยนโปรแกรมเชิงวัตถุโดยอ้างอิงกั
PHP
 
5
ถ้ามโอกาสในการเขยน บทความอก ทางผู  ้เขยนจะเขยนส่วนอื น ๆ ในครั  งต่อไป
 
โดยในตอนท ผ่านมาเรามคาเฉพาะต่าง ๆ ดังน  
 
 
แม่แบบ
(
Class)
 
ลูกแบบ
(
Sub-Class)
 
วัตถุ 
(
Object)
 
การส่งข้อความ
(
Messaging)
 
ข้อความ
(
Message)
 
การห่อหุ  ้มข้อมู
(
Encapsulation)
 
การสืบทอด
(
Inheritance)
 
การทาหลายรูปแบบ
(
Polymorphism)
 
คุณสมบัติ 
(
Properties)
 
แบบแผนพฤติกรรม
(
Method Behavior)
 
พฤติกรรมพื  นฐาน
(
Constructor Method Behavior)
 
การสืบทอด
(
Inheritance)
โดยจากตอนท แล้วนั  นกได้เขยนสาหรับติดต่อกับฐานข้อมูลไปแล้ว ซึ งเป็นชุดคาสั งโปรแกรมท ผู  ้เขยนใช้อยู ่เป็นประจา ซึ  อ้างอิงตาม
PHP 4
ทั  งหมด
 
 
เรื ่องการกาหนดการเข้าถึงคุณสมบัติและแบบแผนพฤติกรรม
 (
 Accessibility Modifiers or Visibility
)
 
เรามคาเฉพาะอยู ่ 
3
ตัวด้วยกันคื
 
 
public
,
เราสามารถเข้าถึ
,
เปล ยนแปลง และเรยกใช้งานได้ทั  งภายในและภายนอกแม่แบบ โดยจะไม่มผลว่ จะมการสืบทอดจากตัวแม่แบบมาก ชั  นกตาม
 
 
protected
,
เราสามารถเข้าถึ
,
เปล ยนแปลง และเรยกใช้งานได้แต่ภายในแม่แบบ และลูกแบบท สืบทอดมา จากแม่แบบเหล่านั  
 
 
private
,
เราสามารถเข้าถึ
,
เปล ยนแปลง และเรยกใช้งานได้เพยงแต่ภายในแม่แบบเท่านั  
 
โดยการกาหนดรูปแบบการเข้าถึงดังกล่าวนั  นช่วยให้เราควบคุมการใช้งานตัวแปรต่าง ๆ ได้ง่ายขึ  น ดังท ได้บอกไปแล้วใน ตอนท  
1
ว่าเราควรเขยนแบบแผนพฤติกรรมไว้เรยกใช้คุณสมบัติเสมอเพื อรับรองความถูกต้องต่อการเข้าถึ
,
เปล ยนแปลงและเรยกใช้งานอยู ่เสมอ ซึ งเป็นเรื องท ควรทาตามหลักการของการห่อหุ  ้มข้อมู
 
การกาหนดการเข้าถึงคุณสมบัติ
 
ด้านล่างคือชุดคาสั งอย่างง่ายท อธิบายการขึ  นถึงภายในแม่แบบของคุณสมบัติได้เป็นอย่างด
 
1.
 
<?php
2.
 
/** Define MyClass */3.
 
class
MyClass {4.
 
public
$public = 'Public';5.
 
protected
$protected = 'Protected';6.
 
private
$private = 'Private';7.
 
function
printHello() {8.
 
echo
$this->public;9.
 
echo
$this->protected;10.
 
echo
$this->private;11.
 
}12.
 
}13.
 
/** Define MyClass2 */14.
 
class
MyClass2
extends
MyClass {15.
 
protected
$protected2 = 'Protected2';16.
 
function
printHello() {17.
 
echo
$this->public;18.
 
echo
$this->protected;19.
 
echo
$this->protected2;20.
 
echo
$this->private;21.
 
}22.
 
}
ชุดคาสั งท  
1 (
จาก
PHP Manual, Chapter 19 Classes and Objects (PHP 5))
 
จากชุคคาสั งท  
1
นั  นเรากาหนดตัวแปรไว้ทั  งหมด
3
ตัวท แตกต่างกันในรูปแบบการเข้าถึงในแม่แบบ
MyClass
โดยในแม่แบบ
MyClass2
นั  นสืบทอดจาก
MyClass
โดยมการกาหนดตัวแปร
1
ตัวท เป็นชนิ
protected
อกตัวด้วยกั
 1.
 
$obj =
new
MyClass();2.
 
echo
$obj->public; // Works3.
 
echo
$obj->protected; // Fatal Error4.
 
echo
$obj->private; // Fatal Error5.
 
$obj->printHello(); // Shows Public, Protected and Private6.
 
7.
 
$obj2 =
new
MyClass2();8.
 
echo
$obj->public; // Works9.
 
echo
$obj2->private; // Undefined10.
 
echo
$obj2->protected; // Fatal Error11.
 
$obj2->printHello(); // Shows Public, Protected, Protected2, not Private
12.
 
?>
ชุดคาสั งท  
2 (
จาก
PHP Manual, Chapter 19 Classes and Objects (PHP 5))
จากชุดคาสั งท  
2
น  ท่านผู  ้เขยนจะอธิบานทละบรรทัด โดยเมื อสั งทางานจะเกิดข้อผิดพลาดจะมข้อผิดพลาดดังน  
 
1.
 
บรรทัดท  
1
สร้างวัตถุจากแม่แบบ
MyClass
 2.
 
บรรทัดท  
2
,
แสดงค่าของ
public
ออกมา
 
โดยแสดงค่าออกมาได้ปกติ
 3.
 
บรรทัดท  
3,
แสดงค่
protected
แต่ตัวแปร
protected
ไม่สามารถเข้าถึงได้จากภายนอกแม่แบบได้
 4.
 
บรรทัดท  
4,
แสดงค่
private
แต่ตัวแปร
private
ไม่สามารถเข้าถึงได้จากภายนอกแม่แบบได้
 5.
 
บรรทัดท  
5
,
แสดงค่าทั  งหมดของทั  
3
ตัวแปรโดยตัวแปรสามารถทางานได้ปกติทั  งหมด
 6.
 
บรรทัดท  
7
,
สร้างวัตถุจากแม่แบบ
MyClass2
โดยท แม่แบบน  สืบทอดมาจากแม่แบบ
MyClass
 7.
 
บรรทัดท  
8
,
แสดงค่าของ
public
ออกมา โดยแสดงค่าออกมาได้ปกติ
 8.
 
บรรทัดท  
9,
แสดงค่
private
แต่ตัวแปร
private
ไม่ได้กาหนดไว้ในแม่แบบ
MyClass2
และไม่ได้สืบทอด คุณสมบัติน  มาจาก
MyClass
เพราะ
MyClass
นั  นกาหนดไว้เป็
private
 9.
 
บรรทัดท  
10,
แสดงค่
protected
แต่ตัวแปร
protected
ไม่สามารถเข้าถึงได้จากภายนอกแม่แบบท สืบทอด มาจาก
MyClass
 10.
 
บรรทัดท  
11
,
แสดงค่าทั  งหมดของทั  
4
ตัวแปรโดยตัวแปรสามารถทางานได้ปกติทั  งหมด โดยท ตัวแปร
private
จะไม่มอะไรแสดงขึ  นมา เพราะเราไม่ได้กาหนดค่าตัวแปรน  ไว้ในแม่แบบ
MyClass2
และตัวแปร
protected
นั  สามารถเรยกใช้ได้จากแม่แบบ
MyClass2
ได้ด้วย
 
จากตัวอย่างทั  
2
ชุดคาสั งนั  นถ้าเราไม่ได้กาหนดการเข้าถึงตั
PHP
จะทาการกาหนดให้เป็
public
โดยค่าเริ มต้นเสมอ
 

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->