[Risolto] [PHP] accesso statico da un elemento in una classe

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

[Risolto] [PHP] accesso statico da un elemento in una classe

Messaggio da SuperStep »

Salve,

ho un problema che ho gia' risolto, ma mi piacerebbe capire perche' accade.

sto costruendo una classe statica che si occupa di costruire il modello nel database. Quando gli passo un'istanza dell'oggetto per poter prendere gli attributi statici e quelli non. Quando salvo il riferimento e provo ad accedere con quello direttamente ottengo un errore. in particolare unexpected '::'.

esempio non funzionante:

Codice: Seleziona tutto

class ModelBuilder {
    
    private $model;
    
    public function __construct(Model $model){
        
        $this->model = $model;
        
    }
    
    public function buildAttribute() {

        var_dump($this->model::$database);

    }
}
esempio funzionante

Codice: Seleziona tutto

class ModelBuilder {
    
    private $model;
    
    public function __construct(Model $model){
        
        $this->model = $model;
        
    }
    
    public function buildAttribute() {
        
        $model = $this->model;
        
        var_dump($model::$database);

    }
}
qualcuno ne conosce il motivo?
Ultima modifica di SuperStep il lunedì 22 giugno 2015, 10:19, modificato 1 volta in totale.
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP] accesso statico da un elemento in una classe

Messaggio da Zoff »

è semplicemente una questio di parser php, non è previsto nella grammatica del linguaggio.
E' una delle tante cose che non si possono fare, come ad esempio invocare un metodo a catena sul costruttore:

Codice: Seleziona tutto

new Datetime()->format("%c")
Per farlo in una riga:

Codice: Seleziona tutto

var_dump(($this->model)::$database);
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

Re: [PHP] accesso statico da un elemento in una classe

Messaggio da SuperStep »

in realta' non funziona nemmeno in quel modo...
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [PHP] accesso statico da un elemento in una classe

Messaggio da Zoff »

Ok, allora funziona solo per le chiamate a cascata. Non avevo testato :p

Comunque non è un errore tuo, è che non lo prevede PHP.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Avatar utente
SuperStep
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 2037
Iscrizione: lunedì 19 dicembre 2011, 16:26
Desktop: Unity
Distribuzione: Ubuntu 16.04 LTS x86_64
Sesso: Maschile
Località: Somma Vesuviana (NA)

Re: [PHP] accesso statico da un elemento in una classe

Messaggio da SuperStep »

ok metto risolto.

Grazie Mille!
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 6 ospiti