⊗ppOpNsCA 104 of 107 menu

Osztály álnevek névterekhez OOP-ban PHP-ben

Tegyük fel, hogy van két Data osztályunk, amelyek különböző névterekhez tartoznak. Tegyük fel, hogy valamely osztályban mindkét osztály objektumaira szükségünk van:

<?php namespace Project; class Test { public function __construct() { $data1 = new \Core\Users\Data; // objektum létrehozása $data2 = new \Core\Admin\Data; // objektum létrehozása } } ?>

Tegyük fel, hogy le akarjuk egyszerűsíteni az osztályok meghívását a use paranccsal. Ebben az esetben problémába ütközünk: mindkét osztálynak Data a neve, ami azt jelenti, hogy névütközés lesz:

<?php namespace Project; // Névütközés lesz: use \Core\Users\Data; // első osztály betöltése use \Core\Admin\Data; // második osztály betöltése class Test { public function __construct() { $data1 = new Data; $data2 = new Data; } } ?>

Ennek a problémának a megoldására létezik egy speciális parancs, a as, amely lehetővé teszi a betöltött osztály álnevének megadását - egy olyan név, amely alatt az osztály elérhető lesz ebben a fájlban. Adjunk álnevet a Data osztályainknak:

<?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; } } ?>

Egyszerűsítsd a következő kódot a use használatával:

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

Egyszerűsítsd a következő kódot a use használatával:

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