View Full Version : [Php] Come utilizzare "continue" se...
Salve a tutti.
Ho una situazione del genere
FOR (...)
{
IF (...)
{
continue;
}
ELSE
{
echo '...';
}
}
Se il ciclo continua sempre non ho nessun output, come posso fare per averne uno nel caso in cui il ciclo continuasse sempre (per tutto il FOR)?
Grazie in anticipo.
dipende un po dal for.. puoi scrivere almeno l'intestazione del for?
wingman87
01-06-2008, 00:38
Salve a tutti.
Ho una situazione del genere
FOR (...)
{
IF (...)
{
continue;
}
ELSE
{
echo '...';
}
}
Se il ciclo continua sempre non ho nessun output, come posso fare per averne uno nel caso in cui il ciclo continuasse sempre (per tutto il FOR)?
Grazie in anticipo.
Metti un echo anche nell'if
Metti un echo anche nell'if
Ciao e grazie per la risposta.
Nel tuo caso però avrei tanti output quanti sono i continue che hanno avuto esecuzione, invece io voglio UN output se e solo se il ciclo continua SEMPRE.
Grazie.
te l'ho detto che è necessario vedere l'intestazione del for.. esempio
$str = "ciao a tutti";
for($i = 0; $i < strlen($str); $i++)
{
if($str[$i] != "a")
continue;
else
echo "la stringa contiene una a";
if($i == strlen($str)-1)
echo "la stringa non contiene a";
}
in questo caso si può fare così.. ma non sempre va bene, per questo ti chiedo di farci vedere il codice..
te l'ho detto che è necessario vedere l'intestazione del for.. esempio
$str = "ciao a tutti";
for($i = 0; $i < strlen($str); $i++)
{
if($str[$i] != "a")
continue;
else
echo "la stringa contiene una a";
if($i == strlen($str)-1)
echo "la stringa non contiene a";
}
in questo caso si può fare così.. ma non sempre va bene, per questo ti chiedo di farci vedere il codice..
Ciao, ecco il codice:
for ($i = 1; $i < $total+1; $i++)
{
if (strlen($address[$i]["add"]) == 0 or (strtolower($tholoc[$i]["ln"]) !== strtolower($localityname) and strtolower($thodep[$i]["dln"]) !== strtolower($localityname)))
{
continue;
}
Questa è la condizione che CONTINUA sempre.
Tralascio gli elseif che seguono perché credo che non servano.
Ciao, ecco il codice:
for ($i = 1; $i < $total+1; $i++)
{
if (strlen($address[$i]["add"]) == 0 or (strtolower($tholoc[$i]["ln"]) !== strtolower($localityname) and strtolower($thodep[$i]["dln"]) !== strtolower($localityname)))
{
continue;
}
Questa è la condizione che CONTINUA sempre.
Tralascio gli elseif che seguono perché credo che non servano.
fai cosi..
for ($i = 1, $j = 1; $i < $total+1; $i++)
{
if (strlen($address[$i]["add"]) == 0 or (strtolower($tholoc[$i]["ln"]) !== strtolower($localityname) and strtolower($thodep[$i]["dln"]) !== strtolower($localityname)))
{
$j++;
continue;
}
//gli altri tuoi controlli
if($i==$total && $i==$j)
echo "quello che vuoi";
}
secondo me basta mettere un if($i==$total)echo "quello che vuoi" prima della chiusura del for..
Ma se $i == $total non considera se le iterazioni precedenti (se ce ne fossero) hanno continuato o no.
fai cosi..
for ($i = 1, $j = 1; $i < $total+1; $i++)
{
if (strlen($address[$i]["add"]) == 0 or (strtolower($tholoc[$i]["ln"]) !== strtolower($localityname) and strtolower($thodep[$i]["dln"]) !== strtolower($localityname)))
{
$j++;
continue;
}
//gli altri tuoi controlli
if($i==$total && $i==$j)
echo "quello che vuoi";
}
Questo mi piace di più. :)
Però il tuo if va prima di "continue" ed è sufficiente $j == $total. Almeno credo.
Grazie.
si vero così come dici dovrebbe essere perfetto.. scusa ma senza provarlo è un po un casino..
rilancio..
if (strlen($address[$i]["add"]) == 0 or (strtolower($tholoc[$i]["ln"]) !== strtolower($localityname) and strtolower($thodep[$i]["dln"]) !== strtolower($localityname)))
{
$j++;
if($j == $total)
echo "quello che vuoi";
continue;
}
altrimenti non hai l'ultima incrementata di j e non sarà mai uguale a total..
rilancio..
if (strlen($address[$i]["add"]) == 0 or (strtolower($tholoc[$i]["ln"]) !== strtolower($localityname) and strtolower($thodep[$i]["dln"]) !== strtolower($localityname)))
{
$j++;
if($j == $total)
echo "quello che vuoi";
continue;
}
altrimenti non hai l'ultima incrementata di j e non sarà mai uguale a total..
Dicevo proprio quello :)
Grazie ancora, ciao.
figurati, hai fatto tutto tu praticamente :muro: ciao
figurati, hai fatto tutto tu praticamente :muro: ciao
eheh mica tanto...te hai acceso la lampadina!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.