Yksinkertaistettu nimiavaruuksien käsittely OOP:ssa PHP:ssä

Oletetaan, että meillä on seuraava luokka Controller:

/admin/controller.php<?php
  namespace Admin;
  
  class Controller
  {
    
  }
?>

Oletetaan myös, että on olemassa luokka Page, joka perii luokasta Controller:

/admin/page.php<?php
  namespace Admin;
  
  class Page extends \Admin\Controller
  {
    
  }
?>

Kuten näette, perinnässä määritämme vanhemman nimen yhdessä nimiavaruuden kanssa. Tässä esimerkissä on kuitenkin vivahde: molemmat luokat kuuluvat samaan nimiavaruuteen. Tällaisessa tapauksessa luokkaan viitatessa voi yksinkertaisesti kirjoittaa sen luokan nimen, näin:

/admin/page.php<?php
  namespace Admin;
  
  class Page extends Controller
  {
    
  }
?>
Задание 1

Annettu kaksi luokkaa:

php<?php
  namespace Modules\Shop;
  
  class Cart
  {
    
  }
?>
php<?php
  namespace Modules\Shop;
  
  class UserCart extends \Modules\Shop\Cart
  {
    
  }
?>

Yksinkertaista koodi luokan perinnälle, ottaen huomioon sen, että molemmat luokat ovat samassa nimiavaruudessa.