Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Problema semplice classe

    Ciao ragazzi. Ho realizzato diverse classi per il mio sito, però è tutto il pomeriggio che non riesco a uscire da un piccolo errore...proprio non riesco a capirne bene il motivo.

    Ho fatto una piccola classe per ricavare il tempo di esecuzione del mio script. Le funzioni che ho utilizzato sono semplicissime, eppure anche così non vanno...

    Codice PHP:
    class websiteGlobalTime
    {
        
    # Definisco la variabile che contiene il tempo
        
    var $tempoInizio 0;
        var 
    $tempoFine 0;
        var 
    $cifreArrotondamento 0;
        
        
    # Funzione costruttore: avvio il tempo
        
    function __construct()
        {
            
    # Avvio il tempo
            
    $this->tempoInizio microtime(true);
        }
        
        
    # Funzione che blocca il tempo e restituisco il totale
        
    function _stopTime()
        {
            
    # Fermo il tempo
            
    $this->tempoFine microtime(true);
            
    # Eseguo i calcoli per trovare il tempo totale
            
    $tempoTotale $this->tempoFine $this->tempoInizio;
            
    //$tempoTotale = number_format($tempoTotale,5,',','.');  
            # Ritorno con il tempo totale
            
    return $tempoTotale;
        }

    Questa classe, viene richiamato nel file index.php così:
    Codice PHP:
    $tempo = new websiteGlobalTime(); 
    Nel footer della pagina (footer.php), invece richiamo lo stop (e quindi il risultato) della classe così:
    Codice PHP:
    $stampa websiteGlobalTime::_stopTime();
    print(
    $stampa); 
    Tutto questo però non funziona, o per lo meno mi viene restituito solo il tempo finale, come se il costruttore a questo punto non dovrebbe funzionare...ma come mai?
    Possibili soluzioni?
    Realizzazione script php/mysql, per info:
    delrossofabio@gmail.com

    http://forum.html.it/forum/showthread.php?s=&threadid=1478962

  2. #2
    Sostituisci:

    Codice PHP:
    $stampa websiteGlobalTime::_stopTime(); 
    Con:

    Codice PHP:
    $stampa $tempo->_stopTime(); 
    In ogni caso, sarebbe opportuno rimuovere lo _ all'inizio del metodo. Quella convenzione di naming viene solitamente usato per metodi protected.

  3. #3
    Ah capito...

    Solo che la pagina non è pulita così come l'ho scritta io, quella variabile mi viene difficile passarla a un'altra pagina anche rendendola globale...

    Richiamando direttamente la classe non è possibile fare questo? Quel trattino prima della funzione non mi ha mai dato problemi...devo provare ad eliminarlo?

    EDIT: Ho eliminato il _, ma continua a non funzionare... Mi dice sempre 1230928059.75...che penso sia il secondo attuale...
    Realizzazione script php/mysql, per info:
    delrossofabio@gmail.com

    http://forum.html.it/forum/showthread.php?s=&threadid=1478962

  4. #4
    Originariamente inviato da gta3!
    Solo che la pagina non è pulita così come l'ho scritta io, quella variabile mi viene difficile passarla a un'altra pagina anche rendendola globale...
    Che cosa intendi per "passarla a un'altra pagina"?

    Solitamente il tempo impiegato per la generazione della pagina si riferisce alla singola richiesta HTTP, non a richieste multiple. Se ti serve di mantenere lo stato tra richieste successive, utilizza le sessioni.

    Originariamente inviato da gta3!
    Richiamando direttamente la classe non è possibile fare questo?
    Stai tentando di chiamare in modo statico un metodo che fa riferimento a $this: è ovvio che non possa funzionare.

    Se hai questi dubbi, forse è meglio se riparti dalle basi della programmazione orientata agli oggetti:

    http://www.php.net/manual/en/languag...ekudotayim.php

  5. #5
    Ok grazie do una lettura...

    Scusami ma pensavo che chiamare direttamente la classe con quei famosi due puntini era lo stesso di chiamarla come mi hai fatto l'esempio dopo. Non sapevo che non potevo poi utilizzare le variabili con $this.


    Grazie per i consigli, a presto!
    Realizzazione script php/mysql, per info:
    delrossofabio@gmail.com

    http://forum.html.it/forum/showthread.php?s=&threadid=1478962

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.