ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingการเขียน PHP แบบ Oos หรือ Ps
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: การเขียน PHP แบบ Oos หรือ Ps  (อ่าน 1767 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
sunbrightz
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 10



ดูรายละเอียด
« เมื่อ: 20 มีนาคม 2018, 13:24:16 »

สงสัยว่าถ้าเขียน PHP โดยเขียนแบบ Object oriented style ที่เป็นแบบ -> อะไรแบบนี้



กับแบบ Procedural style ประมาณว่า

โค๊ด:
<?php
$strsql 
"SELECT * FROM keygen";
$query mysqli_query($connect,$strsql);
while(
$result mysqli_fetch_array($query)){}
?>



มันมีความแตกต่างกันยังไงไหมครับ  Lips Sealed
บันทึกการเข้า
!Blogger SEO~~
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 332
ออฟไลน์ ออฟไลน์

กระทู้: 2,932



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 20 มีนาคม 2018, 13:58:04 »

ผลลัพท์ไม่ต่างกันครับ

ที่เป็น OO เขาต้องการเพื่อที่เวลาแก้ไข จะดูง่ายครับ ถ้าเข้าใจหลักการของ OOP ก็จะมองโครงสร้างง่ายครับ
บันทึกการเข้า

gilbert
สมุนแก๊งเสียว
*

พลังน้ำใจ: 587
ออฟไลน์ ออฟไลน์

กระทู้: 713



ดูรายละเอียด
« ตอบ #2 เมื่อ: 20 มีนาคม 2018, 16:51:37 »

คือการอ้างถึง method ครับ

class Test {

function hello() {
}

}

$test = new Test();
$test->hello();

ประมาณนี้ครับ
บันทึกการเข้า
infamous
ก๊วนเสียว
*

พลังน้ำใจ: 14
ออฟไลน์ ออฟไลน์

กระทู้: 295



ดูรายละเอียด
« ตอบ #3 เมื่อ: 20 มีนาคม 2018, 18:49:55 »

สำหรับผม มันเป็นเรื่องของการห่อหุ้มของกลุ่มใดๆหรือหน้าที่สำหรับทำงานใดๆ ให้มีโครงสร้างหรือแนวทางที่เหมือนกันครับ

OOP มันจะดีตรงที่ว่า เราไม่จำเป็นต้องรู้ว่าใน $this->db->query() มันประกอบไปด้วย function call อะไรหรือ logic อะไรบ้าง
แต่เราสามารถ รู้ได้ทันทีว่า ถ้าหากต้องการ query เราสามารถ เขียน $this->db->query('...') ได้เลย โดยที่ไม่ต้องใช้ mysqli_connect() หรือ พวก fetch function
และแน่นอนว่า result set ที่ได้มันจะได้เป็นก้อน ไม่ใช่ array หรือ object แบบ stdClass เสมอไป ขึ้นอยู่กับโครงสร้างของการออกแบบด้วยครับ

สรุปง่ายๆคือ OOP มันจะเป็น wrapper ที่ช่วยห่อหุ้ม object หรือ class ใดๆให้เป็นก้อน ใช้งานง่าย เวลาแก้ไขระดับ core ก็ไม่ยุ่งยากครับ หรือแก้ไขที่ core ตัวเดียว ตัวอื่นที่สืบทอดไปก็ไม่ส่งผลกระทบมาก
มีความยืดหยุ่นในการสืบทอด ซึ่งเป็น concept หลักในหลายๆอย่าง ของหลักการ oop ในภาษาต่างๆ

ยกตัวอย่าง oop กับ ps ในเรื่องเกี่ยวกับบ้านจัดสรร(จำได้แม่นมากตอนเรียนป.ตรี)

OOP คือ ชุดโครงสร้างที่เหมือนกันหรือคล้ายกันทั้งหลัง แต่แตกต่างกันเพียง properties บางส่วนเช่นหน้าต่าง ประตู ห้องครัวเท่านั้น
PS  คือ บ้านจัดสรรที่มีโครงสร้างที่ไม่เหมือนกัน สร้างใครสร้างมัน คุณลักษณะแต่ละส่วนก็จะแตกต่างกันออกไป

ผิดพลาดส่วนใดก็ขอโทษด้วยนะครับ
บันทึกการเข้า
goragod
ก๊วนเสียว
*

พลังน้ำใจ: 45
ออฟไลน์ ออฟไลน์

กระทู้: 221



ดูรายละเอียด
« ตอบ #4 เมื่อ: 20 มีนาคม 2018, 21:41:18 »

ถ้าในอดีต (PHP 5.3) Object จะเป็นรองการเขียนปกติอยู่หลายขุมนะครับ และ PHP ก็เน้นพัฒนาไปในทาง Object และตั้งแต่ PHP7 ขึ้นไป Object ก็ถือว่าเหนือการเขียนแบบปกติอยู่หลายขุมเช่นกัน ... อันนี้ว่าด้วยเรื่องประสิทธิภาพอย่างเดียวนะครับ

ในด้านการใช้งาน แบบ Object มันมีข้อดีตรงที่มันมี property และ การสืบทอด ซึ่ง Editor สมัยใหม่หลายๆตัว ได้ใช้ความสามารถนี้ในการช่วยการเขียนด้วยการลิสต์รายการ property ที่เป็นไปได้มาแสดงอัตโนมัติแค่พิมพ์ -> ใน Object ทำให้การเขียนโปรแกรมแบบ Object ง่ายขึ้น

ถ้าจะให้ดีกว่านี้ ก็ต้องรอ PHP พัฒนาเป็น Object เต็มตัว (เช่น MVC) ซึ่งไม่รู้จะเกิดขึ้นหรือเปล่า เพราะถ้าเกิดจริง คนเขียน PHP คงต้องปรับตัวกันขนานใหญ่

สรุป ในปัจจุบันที่มี คำสั่งที่เป็น Object ให้เลือก แนะนำให้ใช้ Object ในการเขียนครับ
บันทึกการเข้า

sunbrightz
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 10



ดูรายละเอียด
« ตอบ #5 เมื่อ: 21 มีนาคม 2018, 14:07:38 »

แล้วในด้านประสิทธิภาพละครับ ความเร็ว ความหน่วง จะต่างกันไหมครับ
บันทึกการเข้า
goragod
ก๊วนเสียว
*

พลังน้ำใจ: 45
ออฟไลน์ ออฟไลน์

กระทู้: 221



ดูรายละเอียด
« ตอบ #6 เมื่อ: 21 มีนาคม 2018, 14:23:07 »

ถ้า PHP 7 ขึ้นไป Object มีประสิทธิภาพดีกว่าอย่างเห็นได้ชัดเจนครับ

เปรียบเทียบความเร็วในการเข้าถึงข้อมูลของตัวแปรแอเรย์ กับ property ของ Object
« แก้ไขครั้งสุดท้าย: 21 มีนาคม 2018, 14:26:56 โดย goragod » บันทึกการเข้า

!Blogger SEO~~
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 332
ออฟไลน์ ออฟไลน์

กระทู้: 2,932



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 21 มีนาคม 2018, 16:39:48 »

ถ้า PHP 7 ขึ้นไป Object มีประสิทธิภาพดีกว่าอย่างเห็นได้ชัดเจนครับ

เปรียบเทียบความเร็วในการเข้าถึงข้อมูลของตัวแปรแอเรย์ กับ property ของ Object

ไม่เคยทดสอบรูปแบบนี้เลยครับ เลยสงสัยว่า
การเข้าถึงข้อมูลที่เป็น Array ค่อนข้างไว กว่า ปกติ ใช่ไหมครับ หรือเป็นที่ v. PHP อย่างเดียวครับ
กรณี ภาษาอื่น เช่น C# มีผลลัพธ์คล้ายคลึงไหมครับ
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์