⊗ppOpIhOI 36 of 107 menu

ตัวดำเนินการ instanceof และการสืบทอดใน OOP ใน PHP

เรามาเรียนรู้ลักษณะเฉพาะของการสืบทอดเมื่อใช้ ตัวดำเนินการ instanceof กัน สมมติว่าเรามีคลาสหลัก และคลาสย่อย:

<?php // คลาสหลัก: class ParentClass { } // คลาสย่อย: class ChildClass extends ParentClass { } ?>

มาสร้างออบเจ็กต์ของคลาสย่อย:

<?php $obj = new ChildClass; ?>

ทีนี้ มาตรวจสอบด้วย instanceof ว่าออบเจ็กต์ของเราเป็นของคลาส ParentClass และคลาส ChildClass หรือไม่:

<?php var_dump($obj instanceof ChildClass); // แสดงผล true var_dump($obj instanceof ParentClass); // ก็จะแสดงผล true ?>

ดังที่คุณเห็นจากตัวอย่าง - ตัวดำเนินการ instanceof ไม่สร้างความแตกต่างในการตรวจสอบระหว่างคลาสหลัก และคลาสย่อย

อย่าสับสน - หากออบเจ็กต์เป็น ของคลาสหลักจริง ๆ แน่นอนว่าการตรวจสอบ ความเป็นของคลาสย่อยจะคืนค่า false:

<?php $obj = new ParentClass; // ออบเจ็กต์ของคลาสหลัก var_dump($obj instanceof ParentClass); // แสดงผล true var_dump($obj instanceof ChildClass); // แสดงผล false ?>

สร้างคลาส User พร้อมคุณสมบัติสาธารณะ name และ surname

สร้างคลาส Employee ซึ่งจะ สืบทอดจากคลาส User และเพิ่ม คุณสมบัติ salary

สร้างคลาส City พร้อมคุณสมบัติสาธารณะ name และ population

สร้างออบเจ็กต์ของคลาส User จำนวน 3 ชิ้น, ออบเจ็กต์ของคลาส Employee จำนวน 3 ชิ้น, ออบเจ็กต์ของคลาส City จำนวน 3 ชิ้น และ ในลำดับใดก็ได้ ให้บันทึกลงในอาร์เรย์ $arr

วนลูปผ่านอาร์เรย์ $arr และแสดง คอลัมน์ของคุณสมบัติ name ของ ออบเจ็กต์เหล่านั้นที่อยู่ในคลาส User หรือคลาสที่สืบทอดจากคลาสนี้ บนหน้าจอ

วนลูปผ่านอาร์เรย์ $arr และแสดง คอลัมน์ของคุณสมบัติ name ของ ออบเจ็กต์เหล่านั้นที่ไม่อยู่ในคลาส User หรือคลาสที่สืบทอดจากคลาสนี้ บนหน้าจอ

วนลูปผ่านอาร์เรย์ $arr และแสดง คอลัมน์ของคุณสมบัติ name ของ ออบเจ็กต์เหล่านั้นที่อยู่ในคลาส User จริง ๆ กล่าวคือ ไม่ใช่คลาส City และไม่ใช่คลาส Employee บนหน้าจอ

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ