Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316

    namespace e use non li ho ben capiti...

    Come da titolo:

    namespace "dovrebbe" essere una sorta di nome al gruppo di lavoro, quindi:

    Codice PHP:
    <?php
    namespace test

    class prova {
      static function 
    test() {
        echo 
    "oK";
      }
    }

    new 
    test\prova::test();
    no?

    Invece "use"?

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Come hai detto, i namespace sono un sistema per "raggruppare" oggetti in modo da evitare collisioni tra nomi.
    Tutte le definizioni dopo la dichiarazione del namespace entreranno a far parte di quel namespace.

    Codice PHP:

    <?php
    //file1.php
    namespace ns\sns\ssns;

    class 
    prova{}
    prova::someStaticFunc(); //Non serve specificare il namespace, visto che mi trovo già al suo interno
    Puoi anche definire più namespace nello stesso file
    Codice PHP:

    <?php
    //file2.php
    namespace ns\sns\ssns;

    class 
    prova{}
    prova::someStaticFunc(); //Non serve specificare il namespace, visto che mi trovo già al suo interno

    namespace ns\sns\ssns1;
    class 
    prova1{}
    Se voglio usare gli oggetti fuori dal namespace, devo specificare anche il ns
    Codice PHP:
    <?php
    //file3.php
    include 'file1.php';
    \
    ns\sns\ssns\prova::someStaticFunc();
    use serve per fare aliasing del ns

    Codice PHP:
    <?php
    //file3.php
    include 'file1.php';
    use 
    ns\sns\ssns as NS;

    NS\prova::someStaticFunc();
    Oppure

    Codice PHP:
    <?php
    //file3.php
    include 'file1.php';
    use 
    ns\sns\ssns// che equivale a fare "use ns\sns\ssns as ssns"

    ssns\prova::someStaticFunc();
    Con use puoi anche importare un singolo oggetto:

    Codice PHP:
    <?php
    //file3.php
    include 'file1.php';
    use 
    ns\sns\ssns\prova//importo la classe prova

    $ist = new prova();
    Queste sono le basi basi...fai riferimento al manuale di php per argomenti più avanzati

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    Scusa se ti rispondo così tardivamente, ma con un pò di problemi personali non ci ho più pensato...
    Grazie sei stato molto chiaro, invece l'utilità di inserire una cosa come questa:

    Codice PHP:
    abstract class BaseAuthenticate implements EventListenerInterface{
        use 
    InstanceConfigTrait;... 
    Come viene utilizzato quel "use InstanceConfigTrait"?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.