s ele altre funzioni forzano una variabile con scope globale all' interno della classe , la memoria e i riferimenti restano validi per tutta la classe ... se la usi "a caso" o non ti serve veramente una $this-> oppure sei costretto in ogni altro metodo ad usare isset ... ecco, isset non ha alcun senso secondo me all' interno di una classe visto che puoi sapere sempre e subito chi o cosa ti serve e chi no ... se invece la dichiari per un metodo e poi non ti serve piu' a niente allora spiegami perche' dichiararla in quel metodo ...Originariamente inviato da chris
Io ad esempio mi sento più a mio agio nella creazione di una classe definendo in anticipo solo le variabili di cui faccio un uso certo e lasciando ad altre funzioni l'inizializzazione di variabili che possono o meno essere utilizzate.
anche la manutenzione e riusabilita' sono fondamentali ... dove le mettiamo se uno ogni volta deve cercarsi la $this "del momento" ?Originariamente inviato da chris
Per DarCas: stiamo parlando di classi scritte in php che nel 98% dei casi verranno utilizzate in ambito web dove la semplicità di scrittura e la flessibilità del codice compensa la "lentezza" nell'esecuzione dello stesso.
e' proprio questo l' errore di base di cui sto' parlando ... se non la usi o non ti serve, non la dichiari ... devi prima stabilire cosa serve e cosa noOriginariamente inviato da chris
Tu dichiari in anticipo tutte le variabili, anche quelle che non utilizzi
cosi' se altre classi chiamanometodi che fanno affidamento su una variabile interna inesistente sei a cavallo ... oppure usi isset per ogni chiamata ad un oggetto ???Originariamente inviato da chris
mentre io sostengo di dichiararle soltanto al momento dell'utilizzo.
beh, oltre ad aumentare il tempo di esecuzione, cosi' , aumenti il tempo di stesura codice ed anche la sua affidabilita' , capita a tutto di scordarsi un isset , no ?
guadagno in prestazioni: nessun isset piu' controlli sulla variabile, solo controlli sulla variabileOriginariamente inviato da chris
Inoltre ... Mi spieghi in cosa consiste il tuo guadagno di tempo nel dichiarare tutte le variabili nello stesso momento piuttosto che in momenti diversi?
guadagno in leggibilita': nessuna ricerca del punto in cui una variabile della classe viene istanziata , se serve e' all' inizio e non in mezzo a 20 files ...
guadagno manutenzione / implementazione: hai definito le variabili pubbliche , gli altri sanno che possono farci affidamento e che queste avranno un vaolre di default e una definizione di tipo di default sulla quale fare affidamento
guadagno in sicurezza: nessun notice, warning o altro , la variabile c'e'
guadagno teorico personale: i riferimenti sullo stack sono ben definiti e reperibili nella heap senza dover assegnare in stack ed in heap un valore interrompendo eventuali controlli / cicli / funzioni dove la variabile interna serve.
opinione personale ... e cmq sia, vedi che non si sta' parlando di aria fritta, e' un discorso , imho , molto interessante e troppo spesso non preso in considerazione![]()