La funzione funziona (scusate il gioco di parole) ma l'echo non stampa a video, dove sbaglio?
if (prossime_serate($nome_up)) {
echo "Prossimi Eventi:
";
prossime_serate($nome_up);
}
La funzione funziona (scusate il gioco di parole) ma l'echo non stampa a video, dove sbaglio?
if (prossime_serate($nome_up)) {
echo "Prossimi Eventi:
";
prossime_serate($nome_up);
}
ciao, bisognerebbe vedere cosa produce in output la funzione prossime_serate($nome_up);
alla fine dovrebbe ritornare una variabile
Si ovviamente mi ritorna una variabile (non ho voluto mettere tutto il codice )
Quindi la funzione viene richiamata e funziona, anche l'IF funziona nel senso che se la funzione torna un valore lo stampa altrimenti non manda a video nulla, solo che l'echo non va proprio...
Ho fatto una cosa molto più semplice ... cmq non va!
file prova.php
funzionecodice:<? include("functions.php"); $numero=5; if (quadrato($numero)) { echo "Calcolo quadrato del numero $numero: "; quadrato($numero); } ?>
A video esce:codice:function quadrato($num) { $totale=$num*$num; echo "Il quadrato di $num è $totale"; }
Il quadrato di 5 è 25
anziché
Calcolo quadrato del numero 5:
Il quadrato di 5 è 25
Ci credo prima richiami la funzione e poi il resto fai cosi se vuoi risolvere facilmente:
File:
Funzione:Codice PHP:
<?
include("functions.php");
$numero=5;
if (quadrato($numero)) {
echo "Calcolo quadrato del numero $numero:
";
echo quadrato($numero);
}
?>
Codice PHP:
<?
function quadrato($num)
{
$totale=$num*$num;
return "Il quadrato di $num è $totale";
}
?>
Riguarda bene il codice ed analizza il tutto,troverai la soluzione;bisogna sempre studiare il codice.
Sono stato nella terra della paura e dei vampiri...in transilvania?NO!..in Banca!
ok, dovresti aggiungere un return true alla fine della tua funzione
ma così come l'hai scritta ti stamperà l'echo 2 volte, prima quando fai if($quadrato($numero)) e poi quando riscrivi la funzione. In pratica stampa l'echo all'interno di quadrato() ogni qualvolta la richiami.Codice PHP:
function quadrato($num)
{
$totale=$num*$num;
echo "Il quadrato di $num è $totale";
return true;
}
secondo me dovresti fare in questo modo:
Quando devi verificare se la funzione ha esito positivo o negativo devi metterci un return,Codice PHP:
function quadrato($num)
{
$totale=$num*$num;
return $totale;
//senza echo
}
$numero=5;
if($ris=quadrato($numero)) {
echo "Calcolo quadrato del numero $numero:
";
echo $ris;
}
per es, all'interno di una funzione andrebbe bene
CiaoCodice PHP:
function prova($parametro)
{
if($parametro)
{
return true;
}
else
{
return false;
}
}
Mi spieghi che condizione sarebbe?Codice PHP:
if($ris=quadrato($numero)) {
echo "Calcolo quadrato del numero $numero:
";
echo $ris;
}
Il metodo da utilizzare piu veloce e che risolve è quello che ho postato sopra
torna il valore in stringa, quindi nell'if c'è un valore boolean vero e dopo stampi
il return della funzione
Ok, forse meglio come hai fatto tu, in fondo le ho sempre fatte secondo il tuo modelloRoTeam
Mi spieghi che condizione sarebbe?
Comunque quello che volevo far notare all'autore del post è che se vuole verificare il risultato di una funzione deve metterci un return, e così come l'ha scritta lui con l'echo all'interno, glielo stampava ogni volta che la chiamava, anche nell'if.
Ciao e grazie.
Tranquillo non impongo il mio modello a nessuno, era solo una segnalazione di essere un po piu preciso nei codiciOriginariamente inviato da sergioDario
Ok, forse meglio come hai fatto tu, in fondo le ho sempre fatte secondo il tuo modello
Comunque quello che volevo far notare all'autore del post è che se vuole verificare il risultato di una funzione deve metterci un return, e così come la scritta lui con l'echo all'interno, glielo stampava ogni volta che la chiamava, anche nell'if.
Ciao e grazie.
L'idea dell'echo riutilizzabile andrebbe gestita con un altra variabile a parer mio
esempio:
CiaoCodice PHP:
function quadrato($num,$s)
{
$totale=$num*$num;
if($s)
echo "Il quadrato di $num è $totale";
else
return true;
}
$numero=5;
if (quadrato($numero,0)) {
echo "Calcolo quadrato del numero $numero:
";
quadrato($numero,1);
}