⊗ppOpNsCU 101 of 107 menu

A use parancs és a névterek az OOP-ban PHP-ben

Tegyük fel, hogy a következő Data osztályunk van:

<?php namespace \Core\Admin; class Data { public function __construct($num) { } } ?>

Tegyük fel, hogy van egy Page osztály is, amely belül Data objektumokat hoz létre:

<?php namespace Users; class Page { public function __construct() { $data1 = new \Core\Admin\Data('1'); $data2 = new \Core\Admin\Data('2'); } } ?>

Amint látod, mindkét osztályunk teljesen eltérő névterekben található, ezért a Data osztály hívásait nem lehet leegyszerűsíteni, ahogyan azt az előző leckében tettük. Ezek a hívások azonban nagyon hosszúak és kényelmetlenek, mivel minden Data osztály hívásakor meg kell adni a hosszú névterét.

Egy ilyen probléma megoldására létezik egy speciális use parancs. Ezzel a paranccsal elég egyszer csatlakoztatni az osztályt a teljes nevével, és ezután egyszerűen az osztály nevével lehet hivatkozni rá. Lásd a példát:

<?php namespace Users; use \Core\Admin\Data; // csatlakoztatjuk az osztályt class Page extends Controller { public function __construct() { $data1 = new Data('1'); // egyszerűen a névvel hívjuk $data2 = new Data('2'); // egyszerűen a névvel hívjuk } } ?>

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

<?php namespace Project; class Test { public function __construct() { // 3 objektumot hozunk létre ugyanabból az osztályból: $data1 = new \Core\Users\Data('user1'); $data2 = new \Core\Users\Data('user3'); $data3 = new \Core\Users\Data('user3'); } } ?>

Adottak a következő osztályok:

<?php namespace Core\Admin; class Controller { } ?>
<?php namespace Users; class Page extends \Core\Admin\Controller { } ?>

Egyszerűsítsd az osztály öröklésének kódját a use parancs alkalmazásával.

bnazuzcroid