Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di Gunn
    Registrato dal
    Feb 2006
    Messaggi
    370

    Properties cannot be declared abstract

    ciao
    vorrei un chiarimento in merito a questo fatal error che ricevo

    abstract class Common
    {
    abstract protected $limit; // forzo la dichiarazione nella classe che la estende [ERRORE]
    abstract protected function prova(); // forzo la dichiarazione nella classe che la estende
    }

    provando con le interfacce ottengo lo stesso tipo di errore

    mi chiedo per quale ragione non c'è la possibilità di fare questo, se non tramite metodo
    abstract function setLimit(); che mi costringerebbe a scrivere lo stesso metodo in tutte le classi figlie, cosa inutile a mio parere, visto che devo semplicemente salvare un numero e nient'altro

    qualcuno mi illumina?

    ciao
    -10 points to SCLERO high top class [definition of SCLERO HIGH TOP CLASS: 90 random kills]

  2. #2
    che evrsione di PHP usi? se non erro, dalla 5.2 in su appunto le proprietà di una classe abstract non ossono essere dichiarate come tali...

  3. #3
    Utente di HTML.it L'avatar di Gunn
    Registrato dal
    Feb 2006
    Messaggi
    370
    si ho php 5.2.1
    -10 points to SCLERO high top class [definition of SCLERO HIGH TOP CLASS: 90 random kills]

  4. #4
    Utente di HTML.it L'avatar di Gunn
    Registrato dal
    Feb 2006
    Messaggi
    370
    up
    vorrei capire perchè un campo non può essere astratto (in php e java) non sto cercando un workaround o qualcosa del genere, visto che ho già risolto

    ciauzz
    -10 points to SCLERO high top class [definition of SCLERO HIGH TOP CLASS: 90 random kills]

  5. #5
    Utente di HTML.it L'avatar di Gunn
    Registrato dal
    Feb 2006
    Messaggi
    370
    inoltre, in abstract non è possibile utilizzare __call __isset __unset ecc
    dichiarandoli in abstract non solo non vengono utilizzati nella classe reale, ma non dà neanche trigger (E_STRICT)

    è logica questa cosa?

    qui urge la consulenza di andr3a
    -10 points to SCLERO high top class [definition of SCLERO HIGH TOP CLASS: 90 random kills]

  6. #6
    Utente di HTML.it L'avatar di Gunn
    Registrato dal
    Feb 2006
    Messaggi
    370
    up
    -10 points to SCLERO high top class [definition of SCLERO HIGH TOP CLASS: 90 random kills]

  7. #7
    Utente di HTML.it L'avatar di Gunn
    Registrato dal
    Feb 2006
    Messaggi
    370
    boh ho chiuso con abstract
    uso un'interfaccia più una classe padre con costruttore reso privato "alla meglio"

    public function __construct()
    {
    if(get_class($this) == __CLASS__)
    throw new Exception("cannot instantiate this class");
    }

    -10 points to SCLERO high top class [definition of SCLERO HIGH TOP CLASS: 90 random kills]

  8. #8
    Utente di HTML.it L'avatar di Gunn
    Registrato dal
    Feb 2006
    Messaggi
    370
    up e poi rinuncio
    -10 points to SCLERO high top class [definition of SCLERO HIGH TOP CLASS: 90 random kills]

  9. #9
    Ciao.
    In definitiva cosa vuoi ottenere ?
    Non è per niente chiaro e poi questo cos'è
    abstract protected $limit;
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  10. #10
    Beh, guarda, capisco le tue perplessità, e sinceramente mi sono arreso anch'io all'evidenza che la OOP di php è più che monca

    Se vuoi un consiglio personale, per quello che devi fare tu, ti conviene fare direttamente una classe che vai ad estendere per le classi che ti serve e ti risolvi il problema, altrimenti continuerai a girare a vuoto inutilmente

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 © 2025 vBulletin Solutions, Inc. All rights reserved.