⊗ppOpNsCA 104 of 107 menu

ใช้นามแฝงของคลาสสำหรับเนมสเปซใน OOP ใน PHP

สมมติว่าเรามีสองคลาส Data, ซึ่งอยู่ในเนมสเปซที่ต่างกัน สมมติว่าในบางคลาสเราต้องการออบเจ็กต์ จากทั้งสองคลาสนี้:

<?php namespace Project; class Test { public function __construct() { $data1 = new \Core\Users\Data; // สร้างออบเจ็กต์ $data2 = new \Core\Admin\Data; // สร้างออบเจ็กต์ } } ?>

สมมติว่าเราตัดสินใจจะย่อการเรียกใช้คลาส ด้วยคำสั่ง use ในกรณีนี้เราจะ พบปัญหา: ทั้งสองคลาสมีชื่อว่า Data, ซึ่งหมายความว่าเราจะมีข้อขัดแย้งของชื่อ:

<?php namespace Project; // จะมีข้อขัดแย้งของชื่อ: use \Core\Users\Data; // เชื่อมต่อคลาสแรก use \Core\Admin\Data; // เชื่อมต่อคลาสที่สอง class Test { public function __construct() { $data1 = new Data; $data2 = new Data; } } ?>

สำหรับการแก้ปัญหานี้มีคำสั่งพิเศษ คือ as ซึ่งอนุญาตให้กำหนดนามแฝงให้กับคลาสที่เชื่อมต่อ - ชื่อที่คลาสนี้จะสามารถเข้าถึงได้ในไฟล์นี้ มาลอง เปลี่ยนชื่อคลาส Dataของเรากัน:

<?php namespace Project; use \Core\Users\Data as UsersData; use \Core\Admin\Data as AdminData; class Test { public function __construct() { $data1 = new UsersData; $data2 = new AdminData; } } ?>

ลดรูปโค้ดต่อไปนี้โดยใช้ use:

<?php namespace Project; class Test { public function __construct() { $pageController = new \Resource\Controller\Page; $pageModel = new \Resource\Model\Page; } } ?>

ลดรูปโค้ดต่อไปนี้โดยใช้ use:

<?php namespace Project\Data; class Test { public function __construct() { $pageController = new \Project\Data\Controller\Page; $pageModel = new \Project\Data\Model\Page; } } ?>
ไทย
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
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ