Visualizzazione dei risultati da 1 a 8 su 8

Discussione: OOP... alle prime armi

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934

    OOP... alle prime armi

    per capire come si usano le oop mi date una manina con questo pezzo di codice?

    codice:
    class revisioni	{
    public $id_progetto,$data_inizio_revisione,$data_fine_revisione,$progettista,$note,$campo_da_aggiornare,$id_revisione;
    	
    function azioni_db($azione_da_eseguire)	{
    		if($azione_da_eseguire=="crea")	{
    		$query_da_eseguire=crea();
    		}
    		$qry=mysql_query("$query_da_eseguire");
    		$result = mysql_db_query ($database_utenti, $qry , $connessione);
    		if ($result) {
    				$result_finale="Azione eseguita";
    				}
    				else	{
    				$result_finale="Azione non eseguita";
    				}	
    		return $result_finale;
    	}
    	
    	function crea extends azioni_db()	{
    		$this -> $qry = "insert into
    							$database_utenti.$ufficio_pareti_lista_progetti					   
    							set
    							id_progetto='".$this->$id_progetto."',
    							data_inizio_revisione='".$this->$data_inizio_revisione."',
    							data_fine_revisione='".$this->$data_fine_revisione."',
    							progettista='".$this->$progettista."',
    							note='".$this->$note."'";	
    		
    	}
    }
    e il codice che la richiama

    codice:
    $crea=new revisioni();
    	$id_progetto->$id_progetto_ok;
    	$data_inizio_revisione->$data_inizio_revisione_ok;
    	$data_fine_revisione->$data_fine_revisione_ok;
    	$progettista->$progettista_ok;
    	$note->$note_ok;
    	echo $crea->azioni_db('crea');
    Sicuramente ho fatto un bel casino.

    Mi date una manina?

    Grazie,
    Ale

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    dovresti verificare bene sia la struttura che la sintassi... quando "estendi" qualcosa dovresti estendere una classa, non una funzione, inoltre per accedere a una proprietà devi usare la variabile oggetto (es.: $crea->id_progetto = 'xxx'; non "$id_progetto->$id_progetto_ok;")

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934
    Grazie della risposta.

    ma se io volessi creare una classe che dentro abbia due funzioni.

    la prima ha quasi tutti i metodi meno uno che deve prendere dalla seconda funzione e che varia in base alle proprieta che io imposto.

    come posso fare?

    codice:
    class classe1 {
    
    function funzione1() {
    qui vorrei leggerei il valore della funzione 2; vorrei leggere il valore $risultato
    return $risultato
    
    }
    
    function funzione2($valore1,valore2,valore3) {
    $risultato = $valore1+$valore2+$valore3;
    }
    Mi daresti qualche dritta?

    grazie,
    Ale

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    mmmh... secondo me stai un po' confondendo tra le definizioni... puoi fare una classe con una funzione e una seconda (classe) che estende la prima aggiungendo la seconda funzione, oppure un'unica classe con due funzioni... nel tuo esempio PUOI usare una funzione (sarebbe un "metodo") dall'altra semplicemente richiamandola tipo:

    Codice PHP:
    ...
    function 
    funzione1() {
      ...
      
    $risultato_da_funzione2 $this->funzione2(...);
      return 
    $risultato;
    };

    function 
    funzione2($valore1,valore2,valore3) {
      
    $risultato $valore1+$valore2+$valore3;
    };
    ... 

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934
    Io vorrei però che il risultato mi sia dato sempre dalla funzione 1

    Ale

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ma è così... da fuori della classe tu richiami funzione1 ("funzione2" puoi anche farla privata e non richiamabile da fuori)

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934
    Ma a settare $valore1,valore2,valore3 come faccio?

    Ale

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    se le firme sono:

    funzione1($valore1,valore2,valore3)

    e

    funzione2($valore1,valore2,valore3)

    da "fuori" della classe, supponendo che $crea sia un oggetto di tale classe, fai:

    Codice PHP:
     $crea->funzione1(73, -2); 
    dentro funzione1 avrai invece:
    Codice PHP:
     $risultato_da_funzione2 $this->funzione2($valore1$valore2$valore3); 

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.