ความแตกต่างใน PHP อธิบาย [พร้อมตัวอย่าง]

เผยแพร่แล้ว: 2021-02-19

ภาษาการเขียนโปรแกรม PHP เป็นไปตามกระบวนทัศน์การเขียนโปรแกรมเชิงวัตถุ (OOP) พร้อมกับโครงสร้างพื้นฐานอื่นๆ หนึ่งในคุณสมบัติที่สำคัญที่สุดของ OOP คือความหลากหลาย โดยทั่วไป polymorphism มาจากคำภาษากรีก poly หมายถึง many และ morphism หมายถึงรูปแบบ ความหลากหลายใน OOPs เป็นแนวคิดที่ช่วยให้คุณสามารถสร้างคลาสที่มีฟังก์ชันต่างๆ ได้ในอินเทอร์เฟซเดียว

โดยทั่วไปมีสองประเภท: เวลาคอมไพล์ (โอเวอร์โหลด) และรันไทม์ (การแทนที่) แต่พหุสัณฐานใน PHP ไม่รองรับการโอเวอร์โหลด หรือกล่าวอีกนัยหนึ่ง ความหลากหลายเวลาคอมไพล์ ประโยชน์ที่สำคัญที่สุดของ polymorphism ใน PHP คือคุณไม่ต้องกังวลเกี่ยวกับเทคนิคในการกำหนดว่าโค้ดใดที่เขียนในคลาสใด เพราะทั้งหมดจะถูกใช้ในลักษณะเดียวกัน

ตัวอย่างที่เข้าใจง่ายของ ความแตกต่างของ PHP เชิงวัตถุ คือพื้นที่ของรูปทรงเรขาคณิตที่แตกต่างกัน มีรูปทรงต่างๆ มากมายที่มีความยาว ความกว้าง รัศมี และพารามิเตอร์อื่นๆ ต่างกัน แต่ตัวเลขทั้งหมดจะมีพื้นที่ อย่ากังวลหากคุณไม่เข้าใจ เนื่องจากเราจะดูตัวอย่างความหลากหลายใน PHP เพื่อทำความเข้าใจแนวคิดและวิธีการใช้งานให้ดีขึ้น

สารบัญ

วิธีการใช้ Polymorphism ใน PHP?

ความหลากหลายใน PHP สามารถทำได้โดยใช้อินเทอร์เฟซหรือคลาสนามธรรม เราจะดูตัวอย่างเพื่อบังคับใช้ทั้งสองวิธี

ตัวอย่าง Polymorphism ใน PHP เพื่อนำไปใช้ในอินเทอร์เฟซ

คุณสามารถพิจารณาอินเทอร์เฟซเป็นแบบพิมพ์เขียวสำหรับคลาสทั้งหมดที่ขยายได้ พวกมันคล้ายกับคลาสที่มีความแตกต่างหลักเพียงอย่างเดียว คุณสามารถประกาศและกำหนดชื่อวิธีการและอาร์กิวเมนต์ภายในอินเทอร์เฟซ แต่คุณไม่สามารถเขียนโค้ดวิธีการได้ คลาสใดก็ตามที่ใช้อินเทอร์เฟซจะใช้วิธีการทั้งหมด ไวยากรณ์ของอินเทอร์เฟซคือ:

ตัวอย่างอินเทอร์เฟซอินเทอร์เฟซ{

ฟังก์ชันสาธารณะ methodName();

}

เนื่องจากตอนนี้คุณรู้เกี่ยวกับอินเทอร์เฟซแล้ว มาดูวิธีการใช้ polymorphism ใน PHP ในอินเทอร์เฟซกัน

<?php

อินเทอร์เฟซ ShapeExmp{

ฟังก์ชันสาธารณะ calcArea();

}

คลาส SquareExmp ใช้ ShapeExmp{

ด้าน $ ส่วนตัว;

ฟังก์ชั่นสาธารณะ __construct($side){

$this->side = $side;

}

ฟังก์ชันสาธารณะ calcArea(){

$area = $this->side * $this->side;

echo “พื้นที่สี่เหลี่ยมจัตุรัส = “.$area;

}

}

คลาส RectangleExmp ใช้ ShapeExmp{

ส่วนตัว $ width1;

ส่วนตัว $height1;

ฟังก์ชันสาธารณะ __construct($width1,$height1){

$this->width1 = $width1;

$นี้->height1 = $height1;

}

ฟังก์ชันสาธารณะ calcArea(){

$area = $this->width1 * $this->height1;

echo “<br>พื้นที่สี่เหลี่ยม = “.$area;

}

}

คลาส TriangleExmp ใช้ ShapeExmp{

ส่วนตัว $cons1;

ส่วนตัว $ width1;

ส่วนตัว $height1;

ฟังก์ชั่นสาธารณะ __construct($cons1,$width1,$height1){

$นี้->ข้อเสีย1 = $cons1;

$this->width1 = $width1;

$นี้->height1 = $height1;

}

ฟังก์ชันสาธารณะ calcArea(){

$area = $this->cons1 * $this->width1 * $this->height1;

echo “<br>พื้นที่ของรูปสามเหลี่ยม= “.$area;

}

}

$squ = ใหม่ SquareExmp(8);

$squ->calcArea();

$rect = ใหม่ RectangleExmp(10,15);

$rect->calcArea();

$tri = ใหม่ TriangleExmp(0.5,10,12);

$tri->calcArea();

?>

เอาท์พุท:

พื้นที่สี่เหลี่ยมจัตุรัส = 64

พื้นที่สี่เหลี่ยม = 150

พื้นที่สามเหลี่ยม= 3

ดังที่คุณเห็นในตัวอย่างข้างต้น เราได้นำ polymorphism มาใช้ใน PHP ผ่านอินเทอร์เฟซ เราได้สร้างและได้พื้นที่ของรูปทรงสามรูปแบบ: สี่เหลี่ยมจัตุรัสสามเหลี่ยมและสี่เหลี่ยมผืนผ้า คลาสที่นำไปใช้จะมีการเปลี่ยนแปลงตลอดและอาร์กิวเมนต์ก็เช่นกัน แต่ผลลัพธ์จะเป็นพื้นที่ของรูปร่างเสมอ ในทำนองเดียวกัน คุณยังสามารถสร้างและคำนวณพื้นที่ของรูปร่างอื่นๆ เช่น วงกลม สี่เหลี่ยมด้านขนาน วงรี และอื่นๆ

ตัวอย่าง Polymorphism ใน PHP เพื่อนำไปใช้ในคลาสนามธรรม

คลาสนามธรรมใน PHP เป็นคลาสพาเรนต์ที่มีเมธอดที่กำหนดไว้ แต่ไม่ใช่โค้ด พวกเขาถูกกำหนดด้วยความช่วยเหลือของคำหลัก "นามธรรม" คุณสามารถใช้พวกมันเพื่อสืบทอดคลาสอื่นเท่านั้น ทุกคลาสนามธรรมมีหนึ่งวิธีหรือมากกว่าที่เป็นนามธรรม คลาสเหล่านี้ต้องการคลาสย่อยเพื่อเติมเมธอดที่มีชื่อเดียวกัน ดังนั้นคลาสย่อยที่แตกต่างกันจึงใช้เมธอดในลักษณะเดียวกัน ดังนั้นการนำ polymorphism ไปใช้ใน PHP มาทำความเข้าใจสิ่งนี้กันดีกว่าด้วยตัวอย่างความแตกต่างใน PHP

<?php

รูปร่างคลาสนามธรรมExmp{

ฟังก์ชันป้องกันนามธรรม calcArea ();

}

คลาสสี่เหลี่ยมผืนผ้าExmp ขยาย shapeExmp{

วาร์ $x,$y;

ฟังก์ชั่นสาธารณะ __construct($x , $y){

$this->x=$x;

$this->y=$y;

}

ฟังก์ชันสาธารณะ calcArea(){

$a=$this->x*$this->y;

ส่งคืน $a;

}

}

คลาส circleExmp ขยาย shapeExmp{

วาร์ $r;

ฟังก์ชั่นสาธารณะ __construct($r){

$this->r=$r;

}

ฟังก์ชันสาธารณะ calcArea(){

$pi=3.142;

$a=pow($this->r,2)*$pi;

ส่งคืน $a;

}

}

คลาส squareExmp ขยาย shapeExmp{

วาร์ $s;

ฟังก์ชั่นสาธารณะ __construct($s){

$this->s=$s;

}

ฟังก์ชันสาธารณะ calcArea(){

$a=$this->s * $this->s;

ส่งคืน $a;

}

}

$rect=รูปสี่เหลี่ยมผืนผ้าใหม่Exmp(8,10);

$area=$rect->calcArea(); $area=$rect->แคลอาเรีย();

echo “พื้นที่สี่เหลี่ยมผืนผ้า = $พื้นที่ <br>”;

$circ=วงกลมใหม่Exmp(5);

$area=$circ->calcArea(); $area=$circ->แคลอาเรีย();

echo “พื้นที่วงกลม=$พื้นที่<br>”;

$squ=ใหม่ squareExmp(7);

$area=$squ->calcArea();

echo “พื้นที่สี่เหลี่ยม = $พื้นที่ <br>”;

?>

เอาท์พุท:

พื้นที่สี่เหลี่ยมผืนผ้า= 80

พื้นที่วงกลม=78.55

พื้นที่สี่เหลี่ยม=49

ดังที่คุณเห็นในตัวอย่างข้างต้น ขั้นแรกเราได้สร้างคลาสนามธรรม shapeExmp จากนั้นเราได้กำหนดฟังก์ชันนามธรรม calcArea() ในนั้น ในการคำนวณพื้นที่วงกลม สี่เหลี่ยม และพื้นที่สี่เหลี่ยม เราได้ดึงคลาสเหล่านั้นจากคลาสนามธรรม และใช้ฟังก์ชันนามธรรม calcArea() ในทำนองเดียวกัน คุณสามารถใช้คลาสนามธรรมเพื่อใช้ความหลากหลายใน PHP และใช้ระหว่างรันไทม์ได้

ชำระเงิน: โครงการ PHP บน Github

เรียนรู้ หลักสูตรซอฟต์แวร์ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

บทสรุป

สิ่งนี้จะช่วยขจัดข้อสงสัยของคุณเกี่ยวกับความหลากหลายใน PHP คุณสามารถลองใช้มันด้วยวิธีต่างๆ ด้วยความช่วยเหลือของ IDE หรือคอมไพเลอร์ PHP ออนไลน์ PHP ได้เติบโตขึ้นจนกลายเป็นภาษาโปรแกรมที่แพร่หลาย มี โอกาสทางอาชีพ มากมาย ใน PHP เหมาะอย่างยิ่งสำหรับการ พัฒนาเว็บ เชิงโต้ตอบ และจำเป็นต้องเรียนรู้ที่จะเป็นนักพัฒนาแบบฟูลสแตก

หากคุณต้องการประกอบอาชีพด้านการพัฒนาแบบฟูลสแตก คุณสามารถดูโปรแกรม PG สำหรับผู้บริหาร upGrad และ IIIT-B ใน หลักสูตร การพัฒนาซอฟต์แวร์ฟูลสแตก หลักสูตรนี้ให้การศึกษาเกี่ยวกับภาษาและเครื่องมือการเขียนโปรแกรมที่แตกต่างกัน 16 ภาษา ด้วยการมอบหมายโครงการมากกว่า 9 งานให้เสร็จสมบูรณ์ในระหว่างหลักสูตร upGrad ให้การรับประกันตำแหน่งแก่คุณ มีเอกสารการฝึกอบรมมากกว่า 500 ชั่วโมงเพื่อช่วยให้คุณเรียนรู้วิธีสร้างเว็บไซต์และแอปพลิเคชันที่มีประสิทธิภาพและปรับขนาดได้

การเขียนโปรแกรมเชิงวัตถุคืออะไร?

polymorphism ในการเขียนโปรแกรมคืออะไร?

Polymorphism คือความสามารถในการมีมากกว่าหนึ่งรูปแบบ เช่น สุนัขมี 4 ขา แต่ขาต่างกัน นี่เป็นรูปแบบที่แตกต่างกันของวัตถุเดียวกัน ในการเขียนโปรแกรมคอมพิวเตอร์ ความหลากหลายคือความสามารถในการมีอินพุตที่แตกต่างกันและมีเอาต์พุตเดียว ตัวอย่างเช่น เราสามารถมีคลาสของ Person, Worker และ Customer และแต่ละคนก็มีอินพุตที่แตกต่างกัน พวกเขามีข้อมูลที่แตกต่างกันเนื่องจากแต่ละคนมีชื่อที่อยู่และหมายเลขโทรศัพท์ต่างกัน อย่างไรก็ตาม ผลลัพธ์จะเหมือนกันสำหรับพวกเขาทั้งหมด ซึ่งเป็นคลาสของบุคคล

คลาสและอ็อบเจ็กต์ทำงานอย่างไรในการเขียนโปรแกรม?

คลาสเป็นหน่วยพื้นฐานของการเขียนโปรแกรมเชิงวัตถุ (OOP) เป็นพิมพ์เขียวสำหรับออบเจกต์ ดังนั้นจึงใช้เพื่อสร้างออบเจ็กต์และกำหนดพฤติกรรมของออบเจ็กต์ ชั้นเรียนถือได้ว่าเป็นหน่วยการสร้างสากลของ OOP ใช้สำหรับสร้างวัตถุเฉพาะสำหรับงานหรือสถานการณ์เฉพาะ อย่างไรก็ตาม สามารถสร้างคลาสได้แทบทุกเวลาและในลำดับใดก็ได้ต่างจากโลกแห่งความจริง คุณสามารถสร้างคลาสได้ก่อนที่คุณจะรู้ว่ามันจะถูกใช้งานอย่างไร - กระบวนการที่เรียกว่าการสร้างคลาส "ไม่ระบุชื่อ"