Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 14 su 14
  1. #11
    Originariamente inviato da andr3a
    il php e' troppo permissivo, non avrebbe tanta utenza "facile" se non fosse stato cosi' ... e' vero che puoi istanziarle ovunque ma e' anche molto piu' vero quello che ha detto Dar Cas ... cioe' , va bene non ottimizzare le virgole pero' o uno dichiara le variabili e sa quali e quante gliene servono e anche di che tipo, oppure non le dichiari affatto no ???

    per dire che il tizio di quella classe si e' probabilmente scordato ... scordarsi di qualcosa non fa parte della programmazione ... mentre se era un "frega niente faccio come mi pare" allora non si capisce perche' ne ha dichiarate , senza tipo, solo alcune e non tutte ...
    si infatti è quello che penso io. in quella classe il costruttore non serve a nulla, tanto prende e inizializza al volo durante il codice..

  2. #12
    Utente di HTML.it L'avatar di chris
    Registrato dal
    Sep 1999
    Messaggi
    1,568
    Sì, ma state a parlare di aria fritta...
    Ho detto chiaramente che andando a parlare di "massimi sistemi" andrebbe fatto uso della dichiarazione di variabile per diversi motivi tra cui anche quello della "buona forma".

    In concreto dichiarare le variabili al di fuori dei metodi di una classe tanto per dare un valore standard di partenza è un procedimento inutile. Sia perché esiste un costrutto, isset(), tramite il quale è possibile determinare se la variabile è già stata settata e quindi non c'è bisogno di verificare il valore di riferimento standard, sia perché con grande probabilità non tutte le variabili vengono utilizzate sempre e comunque.
    Voglio dire, siete dei programmatori, vi dovreste adattare al linguaggio in cui state scrivendo, mica adattare il linguaggio a voi.

    Per andr3a: non ho in alcun modo detto di non inizializzare le variabili prima di utilizzarle. 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.

    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.
    In php non esistono variabili tipizzate e l'utilizzo della memoria è molto dinamico. Tu dichiari in anticipo tutte le variabili, anche quelle che non utilizzi mentre io sostengo di dichiararle soltanto al momento dell'utilizzo. Inoltre mettiamo caso che una tua variabile di classe sia un array, una volta che l'hai dichiarato come tale pensi che l'interprete php si occupi di allocarti tutta la memoria che ti serve, visto che la dimensione dell'array la decidi dinamicamente in seguito? E se è di tipo stringa pensi che l'interprete php si occupi di allocarti tutta la memoria di cui hai bisogno dato che la dimensione di una stringa può variare all'interno del codice?
    Mi spieghi in cosa consiste il tuo guadagno di tempo nel dichiarare tutte le variabili nello stesso momento piuttosto che in momenti diversi?
    "Nei prossimi tre anni col mio governo vogliamo vincere anche il cancro, che colpisce ogni anno 250.000 italiani e riguarda quasi due milioni di nostri concittadini"

  3. #13
    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.
    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
    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.
    anche la manutenzione e riusabilita' sono fondamentali ... dove le mettiamo se uno ogni volta deve cercarsi la $this "del momento" ?



    Originariamente inviato da chris
    Tu dichiari in anticipo tutte le variabili, anche quelle che non utilizzi
    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 no



    Originariamente inviato da chris
    mentre io sostengo di dichiararle soltanto al momento dell'utilizzo.
    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 ???

    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 ?



    Originariamente 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 prestazioni: nessun isset piu' controlli sulla variabile, solo controlli sulla variabile

    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
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #14
    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.
    In php non esistono variabili tipizzate e l'utilizzo della memoria è molto dinamico. Tu dichiari in anticipo tutte le variabili, anche quelle che non utilizzi mentre io sostengo di dichiararle soltanto al momento dell'utilizzo. Inoltre mettiamo caso che una tua variabile di classe sia un array, una volta che l'hai dichiarato come tale pensi che l'interprete php si occupi di allocarti tutta la memoria che ti serve, visto che la dimensione dell'array la decidi dinamicamente in seguito? E se è di tipo stringa pensi che l'interprete php si occupi di allocarti tutta la memoria di cui hai bisogno dato che la dimensione di una stringa può variare all'interno del codice?
    Mi spieghi in cosa consiste il tuo guadagno di tempo nel dichiarare tutte le variabili nello stesso momento piuttosto che in momenti diversi?
    Io rientro nel 2% che usa il php creare Applicazioni Web e non semplici siti web... Mission Critical ti dice nulla?

    Cmq non era un attacco, quindi non ti arrabbiare, era solo una precisazione da fare nel caso qualche neofita legge il 3d..
    [ DarCas The Architect ]
    [ The DarCas Of Blog ]
    Chuck Norris riesce a trovare un pagliaio dentro a un ago
    :maLOL:

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.