⊗ppOpNsSN 97 of 107 menu

Namespaces i OOP i PHP

Lad os nu antage, at vi har en mere kompleks situation: for administratoren skal der laves to klasser Page - en med sidens data, og den anden - med præsentationen af disse data. Lad den første klasse være placeret i filen /admin/data/page.php, og den anden - i filen /admin/view/page.php.

I de foregående lektioner har vi allerede besluttet, at alle klasser fra mappen admin vil tilhøre namespacet Admin. Men nu har vi i dette samme namespace en konflikt mellem to klasser. For at løse problemet kan der laves yderligere undernamespaces. For eksempel kan der laves namespacet Admin, og i det undernamespacet Data og View. I sådant tilfælde skrives navnene på disse undernamespaces blot gennem omvendt skråstreg - både ved angivelse af namespace og ved oprettelse af et klasseobjekt.

Her bør det præciseres, at indlejringsniveauet af undernamespaces ikke er begrænset (man kan oprette under-undernamespaces i undernamespaces og så videre).

Så lad os færdiggøre vores ovennævnte eksempel. For klassen Page fra filen /admin/data/page.php angiver vi namespacet Admin\Data:

<?php namespace Admin\Data; class Page { } ?>

For klassen Page fra filen /admin/view/page.php angiver vi namespacet Admin\View:

<?php namespace Admin\View; class Page { } ?>

Lad os oprette objekter af vores klasser:

<?php require_once '/admin/data/page.php'; require_once '/admin/view/page.php'; $adminDataPage = new \Admin\Data\Page; $adminViewPage = new \Admin\View\Page; ?>

Antag, at du har mappen modules/cart. Sørg for, at alle klasser fra denne mappe tilhører namespacet Modules\Cart.

Antag, at du har mappen modules/shop/cart/. Sørg for, at alle klasser fra denne mappe tilhører namespacet Modules\Shop\Cart.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis