Passare un array come parametro di una funzione...

Salve a tutti ragazzi, il mio progetto sta andando avanti, ma sono incappato in un problema...

Vorrei riuscire a passare un array come parametro di un metodo che sto creando...

Sono alla creazione di una pagina di registrazione, e siccome non vorrei fare in quella pagina un sacco di chiamate al metodo stesso, mi era venuto in mente di far passare lo stesso array proprio come argomento del metodo!

In codice sarebbe questo:

<?php
public function controllo($array)
{
   foreach($array as $arr)
    {
     //un po di codice...
    }
}
?>

quello che non capisco è che il ciclo foreac viene eseguito soltanto una volta, e quindi non mi è possibile controllare gli altri elementi dell'array, o meglio valori.

Qualcuno mi saprebbe mica spiegare come posso passare un array ad un metodo??

Grazie mille intanto!

inviato 9 anni fa
Pr0v4
X 0 X

Il codice che hai riportato è corretto quindi temo che il problema sia altrove, ad esempio nell'array che passi alla funzione.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Allora cercherò di essere più preciso postando per intero il mio codice di esempio, che mi serve soltanto per vedere se riesco a far passare un array come parametro di una semplice funzione

<?php
function stampa($array)
{
foreach($array as $arr)
{
return $arr;
}
}

//creo l'array
$colori = array('rosso', 'bianco', 'nero', 'giallo');
echo stampa($colori);
?>

Ma purtroppo questa funzione non mi fa vedere tutti gli elementi dell'array... Ma soltanto il primo, e non riesco proprio a capire come mai, anche se lancio la funzione count all'interno della funzione stampa, il count mi dice che l'array contiene 4 oggetti, ma mi fa vedere soltanto il primo!!!

Vi spiego a che mi servirebbe questa funzione, o meglio metodo visto che poi entrerà a far parte di una mia classe. Ho un form in cui un utente dovrà inserire alcuni dati, che verranno mandati tramite post alla pagina che contiene la vera e propria gestione di questi dati. Siccome dovrò, come minimo, controllare i vari campi, e visto che $_POST è un array, avevo pensato di delegare tutti i controlli ad un metodo, in modo tale che con la chiamata ad un singolo metodo mi controllava tutti gli elementi di un array....

Ma non capisco come mai la cosa non funzioni...

PS: se avete qualche suggerimento su come controllare i vari campi sparate pure! sono sempre disponibile a critiche costruttive!

risposto 9 anni fa
Pr0v4
X 0 X

E' semplice, se fai un return esci e quindi il ciclo non finisce.

Nel codice che hai messo esci restituendo il valore, se invece di return metti un echo vedrai stampare tutto il tuo array.

<?php
function stampa($array)
{
foreach($array as $arr)
{
echo $arr;
}
}

//creo l'array
$colori = array('rosso', 'bianco', 'nero', 'giallo');
stampa($colori);
?>
risposto 9 anni fa
LonelyWolf
modificato 9 anni fa
X 0 X

Hai perfettamente ragione Lonely!!!!

che stupido che so delle volte!!!

risposto 9 anni fa
Pr0v4
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda

Domande simili