Visualizzazione dei risultati da 1 a 6 su 6

Discussione: classi e oggetti

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555

    classi e oggetti

    Salve sto cercando di capire qualcosa in + delle classi.
    Ho questo codice(dopo prove e riprove)

    codice:
    <?php
    
    class con_db {
    
    var $DBUser,$DBPW,$DBHost,$DBNome ;
    
    	function setHost($Host = "Localhost"){
    	$this->DBHost = $Host ;
    	print $this->DBHost ;
    	}
    
    	function setUser($User = "root"){
    	$this->DBUser = $User ;
    	print $this->DBUser ;
    	}
    	
    	function setPW($PW = "root"){
    	$this->DBPW = $PW ;
    	print $this->DBPW ;
    	}
    	
    	function setDBNome($Nome = "ProvaFunzioni") {
    	$this->DBNome = $Nome ;
    	print $this->DBNome ;
    	}
    	
    	function Connessione() {
    	$this->Connetti = mysql_connect($this->DBHost,$this->DBUser,$this->DBPW) or die(mysql_error());
    	$this->Seldb = mysql_select_db($this->DBNome,$this->Connetti) or die (mysql_error()) ;
    	if($Connetti){
    	print $this->DBUser ; 
    	}
    	}
    	
    	function Disconnetti() {
    	$this->Disconnetti = mysql_close($this->Connetti) ;
    	}
    	
    	//Gestione query
    	
    	function EseguiSQL($Eseguisql) {
    	$this->DBQuery = trim($EseguiSQL) ;
    	$this->DBRisultato = mysql_query($EseguiSQL,$this->Connetti) or die (mysql_error());
    	}
    	
    	function getRisultato() {
    		while($tmpDati = mysql_fetch_assoc($this->DBRisultato,$this->Connetti)){
    			$out[] = $tmpDati ;
    		}
    		//return $out[] ;
    	}		
    	
    }
    
    $ogg = new con_db ;
    $ogg->setUser() ;	
    $ogg->setPW() ;
    $ogg->setDBNome() ;
    $ogg->setHost() ;
    $ogg->Connessione() ;
    
    	
    
    ?>
    Vorrei capire se per utilizzare gli oggetti devo andare in scala, nel senso per esempio potrei utilizzare $ogg->Connessione() senza prima $ogg->setHost();
    setHost è la funzione dove indico l'host.

    E poi non ho ben capito il return all'interno di una funzione, non capisco l'utilizzo.

    Grazie, chissà se capirò.

  2. #2
    Utente di HTML.it L'avatar di luke83
    Registrato dal
    Jul 2000
    Messaggi
    1,217
    come al solito quando si tratta di oop c'è solo il limite alla fantasi.. nel tuo caso se richiami la funzione membro connessione senza la "scala".. userai i parametri di defalult.. localhost, root e co. per la tua connessione al db

    la return ti permette di ritornare un valore tramite la funzione..

    Codice PHP:
    function sum($a,$b){
    return 
    $a+$b;
    }
    $sum=sum(3,2); // $sum conterrà 5 
    ..::Luca::..
    » "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
    » "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
    [frasi random] - [Lucopedia] - [laFetta]

  3. #3
    Utente bannato
    Registrato dal
    Jul 2005
    Messaggi
    169
    1)Si certo non importa se dichiari prima una o l'altra..
    2) forse perchè non hai in mente il concetto di funzione, ossia una particolare sequenza di codice che dato in ingresso uno o + valori restituisce un SOLO valore..

    retun serve a restituire il valore

    es.

    function come_ti_chiami($nome)
    {
    return "ciao ".$nome;
    }

    echo come_ti_chiami("andrea");

  4. #4
    Non ti preoccupare se non capisci niente della programmazione ad oggetti! Io prima di cominciare a capirci qualcosa ci ho messo due mesi! Ora la uso abbastanza ma ancora non ne riesco ad utilizzare tutte le potenzialità (e sono ormai circa 3 mesi che la uso se non di più!).

    Cmq diciamo che il concetto bas è che in una classe ci sono proprietà e metodi:
    le proprietà non sono altro che le variabili "globali" della classe (quelle che dichiari con var all'inizio e che richiami con $this->var per intenderci)
    I metodi invece sono le funzioni

    variabili = proprietà
    funzioni = metodi

    Ora per ciò che riguarda l'ordine non c'è alcuna regola od obbligo.
    Le classi sono fondamentalmente delle interfacce (come avrai letto anche in qualche guida). Che significa? Significa che è un po' win o linux: quando clicchi su un'icona, trascini un oggetto o fai qualsiasi cosa il computer la esegue e non ti interessa se il codice che esegue materialmente quell'azione è scritto prima o dopo nel codice sorgente!
    A meno che l'utilizzo di un metodo non richieda che venga prima settato qualcosa! Ma questo serve solo per non far restituire un errore al php. Per esempio se ho una classe che invia le e-mail può succedere che io abbia già settato sendmail ma posso anche non averlo settato!

    Nel primo caso mi limiterò a richiamare il metodo che invia la mail mentre nel secondo caso dovrò prima settare "manualmente" il sendmail utilizzando il metodo appropriato!

    Ancora potresti avere una classe che gestisce un catalogo. Questa classe ti permetterà di inserire, modificare o cancellare i dati e tu potrai richiamare ogni metodo nell'ordine che vuoi senza dover tenere conto di quello seguito all'interno del codice della classe.

    Ti ho dato giusto un'infarinatura della OOP ma ti ho anche spiegato nel modo più semplice possibile alcuni concetti che per ma sono stati un po' complicati da capire all'inizio.
    Cmq devi ricordare che il tuo modo di pensare un'applicazione cambierà completamente utilizzando la programmazione ad oggetti non tanto quando utilizzerai una classe ma quando la programmerai!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    555
    Ok vi ringrazio, capisco che dovrò avere pazienza.
    Forse il problema + grosso lo incontro quando devo utilizzare la classe in mezzo al codice php e html. Comunque ritornerò per chiarirmi i dubbi, per adesso grazie di nuovo.


  6. #6
    Di niente! Ciao!

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.