Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    OOP: domande sulla sintassi

    Salve,
    da poco tempo sto incominciando ad utilizzare la OOP in php4... lo so, molto limitata, ma al momento non posso usare il 5.
    Una volta creata una classe non mi è chiaro come si setta una variabile globale che conta gli oggetti... beh ci sono riuscito ma con degli stratagemmi... volevo sapere qual'era il modo "pulito" per farlo.
    Dunque poniamo la classe:
    Codice PHP:
    class Edizioni {
        
    // [Member variables]
        
    var $edizioni_cuttext_default 100;
        var [...]
        
    // [Member functions]
        
    function get_description() {
        [...]
        }
        
    // [Constructor function (php >=4)]
        
    function Edizioni$__parms__ ) {
            
    $this->param $param;
            [...];
        }
    }

    function 
    edizioni_build_from_database( &$n, &$edizioni ) {
        global 
    $conn;
        
    $ris = @mysql_query"SELECT * FROM edizioni;"$conn );
        while( 
    $e mysql_fetch_row$ris ) ) {
            
    $edizioni[++$n] = new Edizioni$e[1], $e[2], $e[3], $e[4], $e[5], $e[6], $e[7], $e[8] );
        }
    }

    //creo $n oggetti
    $n=0;
    $edizioni = array();
    edizioni_build_from_database$n$edizioni ); 
    in pratica ho fatto una classe molto semplice con un constructor che setta le proprietà agli oggetti; poi una funzione esterna che crea un array di oggetti di quella classe direttamente dall'sql. Si fa così?
    わさび

  2. #2
    azz ...

    global $conn;
    $ris = @mysql_query( "SELECT * FROM edizioni;", $conn );

    ... passi variabili "inutili" per riferimento e dichiari globale la connessione al db ? VVoVe:


    io farei il contrario
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da andr3a
    azz ...

    global $conn;
    $ris = @mysql_query( "SELECT * FROM edizioni;", $conn );

    ... passi variabili "inutili" per riferimento e dichiari globale la connessione al db ? VVoVe:


    io farei il contrario
    cioè?
    scusa ma come puoi vedere non sono affatto bravo in OOP, perchè solo di recente ho deciso di scrivere di mano mia un po' di codice... fino ad ora avevo semplicemente letto senza mettere in pratica nulla...

    intendi una cosa del genere?
    Codice PHP:
    function edizioni_build_from_database( &$conn ) {
        global 
    $n;
        global 
    $edizioni
    わさび

  4. #4
    intendo che le variabili globali sono qusi sempre un male .... immagina di includere nel tuo sistema una classe o un applicativo di terzi ed immagina che questi usino una global $conn ... addio sito.

    Visto che si può passare per riferimento, quando ti serve, passa tutto per riferimento ... ma soprattutto, un link_resource al db non dichiararlo mai globale, lui prima di ogni altra cosa, puoi passarlo per riferimento a cascata senza problemi quindi non ti serve avere la $conn globale
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da andr3a
    intendo che le variabili globali sono qusi sempre un male .... immagina di includere nel tuo sistema una classe o un applicativo di terzi ed immagina che questi usino una global $conn ... addio sito.

    Visto che si può passare per riferimento, quando ti serve, passa tutto per riferimento ... ma soprattutto, un link_resource al db non dichiararlo mai globale, lui prima di ogni altra cosa, puoi passarlo per riferimento a cascata senza problemi quindi non ti serve avere la $conn globale
    grazie 1000 per le info,
    cmq per il resto va bene come procedimento?
    わさび

  6. #6
    Originariamente inviato da Trinità76
    cmq per il resto va bene come procedimento?
    direi che se usi gli oggetti le funzioni che richiamano gli oggetti sono un pò in controtendenza col metodo che vuoi usare ... ovvero gli oggetti.


    Di solito se vuoi scrivere ad oggetti usi oggetti anche per le operazioni utili o comuni, come fossero funzioni ... ma di fatto in PHP4 credo vada benissimo anche così meticcio
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da andr3a
    direi che se usi gli oggetti le funzioni che richiamano gli oggetti sono un pò in controtendenza col metodo che vuoi usare ... ovvero gli oggetti.
    Di solito se vuoi scrivere ad oggetti usi oggetti anche per le operazioni utili o comuni, come fossero funzioni ... ma di fatto in PHP4 credo vada benissimo anche così meticcio
    Grazie ancora per le delucidazioni!
    ora, guardando la sintassi che usi su una delle tue classi su devpro, credo di aver capito in pieno cosa intendevi per "io farei il contrario"
    ora aggiorno le classi scritte male
    わさび

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.