il senso di return true

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
Mi spoegate che senso ha scrivere

return true;

all'interno di un metodo?

ad esempio

Codice:
  public function connetti()
  {
   if(!$this->attiva)
   {
    $connessione = mysql_connect($this->nomehost,$this->nomeuser,$this->password);
       }else{
        return true;
       }
    }
}

se al posto di return true scrivo return false; oppure se tolgo direttamente questo benedetto return che accade e/o non accade?
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Dipende come viene usata la funzione. Se io ho una funzione del genere:
PHP:
function calcola($a, $b)
{
  $calc = $a + $b;
  echo "Somma: {$calc}";
}

echo calcola(2, 5); // Somma: 7
calcola(2, 5); // Somma: 7
?>
Allora non serve, ma modificandola così:
PHP:
function calcola($a, $b)
{
  $calc = $a + $b;
  return $calc;
}

calcola(2, 5); // (nulla)
echo calcola(2, 5); // Somma: 7
?>
Allora è tutta un'altra cosa. Dipende da che cosa devi farne di quella funzione. Nel caso della connessione al database, il return true serve per comunicare che la connessione è andata a buon fine. Se tu non lo vuoi sapere allora puoi anche toglierlo, ma se devi controllarlo ti serve!
 

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
con i tuoi esempi concordo pienamente; ma nel caso che ho riportato tu sai molto meglio di me che:

  • Vede se esiste una connessione attiva
  • Se vero allora avvia la richiesta di connessione
  • altrimenti restituisce true

Non capisco proprio il motivo di return true(riferito alla funzione e non alla connessione); perchè allora non ha inserito "return false;".
In questo caso il return poiché non ha lo scopo di controllare la connessione; che scopo ha?

P.S. Scusami se sembro troppo puntiglioso ma vorrei semplicemente capire...
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
perché la connessione deve essere stabilita soltanto se non attiva, se la funzione restituisce TRUE non è necessario attivare la procedurea di connessione
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
emanuelevt, non c'è nessun motivo particolare per cui ha usato true al posto di altro. Avrebbe potuto benissimo fare:
PHP:
public function connetti()
{
    if(!$this->attiva)
    {
        $connessione = mysql_connect($this->nomehost,$this->nomeuser,$this->password);
    }
    else
    {
        return false;
    }
}
Oppure:
PHP:
public function connetti()
{
    if(!$this->attiva)
    {
        $connessione = mysql_connect($this->nomehost,$this->nomeuser,$this->password);
    }
    else
    {
        return 'pincopalla';
    }
}
Oppure:

PHP:
public function connetti()
{
    if(!$this->attiva)
    {
        $connessione = mysql_connect($this->nomehost,$this->nomeuser,$this->password);
    }
    else
    {
        return;
    }
}
O più semplicemente:

PHP:
public function connetti()
{
    if(!$this->attiva)
    {
        $connessione = mysql_connect($this->nomehost,$this->nomeuser,$this->password);
    }
}
 

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
Ecco quindi può essere visto come un ulteriore controllo... ma nn di estrema utilità... . Grazie per gli esempi.
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Credo che l'autore abbia aggiunto quel TRUE a puro scopo didattico :D
 

Discussioni simili