⊗ppOpNsCU 101 of 107 menu

Kommandot use och namnområden i OOP i PHP

Låt oss säga att vi har följande klass Data:

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

Låt oss också säga att det finns en klass Page som skapar objekt av klassen Data inuti sig:

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

Som du ser finns båda våra klasser i helt olika namnområden, därför kan anrop till klassen Data inte förenklas, på samma sätt som vi gjorde i föregående lektion. Dessa anrop är dock väldigt långa och obekväma, eftersom vi i varje anrop till klassen Data måste ange dess långa namnområde.

För att lösa detta problem finns det ett speciellt kommando use. Med hjälp av detta kommando räcker det att ansluta klassen en gång med dess fullständiga namn, och efter det kan man referera till denna klass enkelt med klassens namn. Se exemplet:

<?php namespace Users; use \Core\Admin\Data; // ansluter klassen class Page extends Controller { public function __construct() { $data1 = new Data('1'); // anropar enkelt med namn $data2 = new Data('2'); // anropar enkelt med namn } } ?>

Förenkla följande kod med hjälp av use:

<?php namespace Project; class Test { public function __construct() { // Skapar 3 objekt av en klass: $data1 = new \Core\Users\Data('user1'); $data2 = new \Core\Users\Data('user3'); $data3 = new \Core\Users\Data('user3'); } } ?>

Följande klasser är givna:

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

Förenkla arvskoden genom att applicera kommandot use.

deenhyhuuzc