⊗ppOpNsCA 104 of 107 menu

Alias di classe per i namespace nella OOP in PHP

Supponiamo di avere due classi Data, appartenenti a namespace diversi. Supponiamo che in una certa classe ci servano oggetti di entrambe queste classi:

<?php namespace Project; class Test { public function __construct() { $data1 = new \Core\Users\Data; // creiamo un oggetto $data2 = new \Core\Admin\Data; // creiamo un oggetto } } ?>

Supponiamo di aver deciso di semplificare le chiamate alle classi tramite il comando use. In questo caso ci aspettava un problema: entrambe le classi hanno il nome Data, ciò significa che avremo un conflitto di nomi:

<?php namespace Project; // Ci sarà un conflitto di nomi: use \Core\Users\Data; // connettiamo la prima classe use \Core\Admin\Data; // connettiamo la seconda classe class Test { public function __construct() { $data1 = new Data; $data2 = new Data; } } ?>

Per risolvere questo problema esiste un comando speciale as, che permette di assegnare alla classe connessa un alias - un nome con cui questa classe sarà accessibile in questo file. Diamo un nuovo nome alle nostre classi Data:

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

Semplificate il seguente codice utilizzando use:

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

Semplificate il seguente codice utilizzando use:

<?php namespace Project\Data; class Test { public function __construct() { $pageController = new \Project\Data\Controller\Page; $pageModel = new \Project\Data\Model\Page; } } ?>
Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta