Visualizzazione dei risultati da 1 a 7 su 7

Discussione: foreach con valore 0

  1. #1
    Utente di HTML.it L'avatar di barnico
    Registrato dal
    Oct 2001
    Messaggi
    490

    foreach con valore 0

    volevo capire un comportamento del ciclo foreach, sacrivo qui perchè non sono riuscito a trovare niente su internet;
    praticamento se si effettua una chiamata del tipo:
    codice:
    foreach($array as $valore)
    { 
               istruzione
    }
    dove $array non contiene elementi per un motivo qualsiasi, tipo viene popolato da un db, il foreach restituisce un errore che non fà avanzare il codice;
    mi chiedevo è giusto come comportamento? per evitare ciò è meglio controllare il numero di elementi nell'array?

  2. #2
    Ti suggerisco di iniziare leggendo il manuale ufficiale:

    http://www.php.net/is_array
    http://www.php.net/foreach

    In ogni caso, se il tuo codice genera un errore, sarebbe utile che tu postassi anche il messaggio di errore che restituisce il PHP.

  3. #3
    Utente di HTML.it L'avatar di barnico
    Registrato dal
    Oct 2001
    Messaggi
    490
    questo è l'avviso che mi viene restituito:
    Warning: Invalid argument supplied for foreach()
    ho controllato è l'array passatogli non contiene valori.

  4. #4
    Originariamente inviato da barnico
    questo è l'avviso che mi viene restituito:
    Warning: Invalid argument supplied for foreach()
    ho controllato è l'array passatogli non contiene valori.
    Come da manuale, foreach() accetta in input un ARRAY. Ovvero, verifica con is_array() che la variabile sia veramente un array prima di passarlo a foreach().

  5. #5
    Utente di HTML.it L'avatar di barnico
    Registrato dal
    Oct 2001
    Messaggi
    490
    praticamento io gli passo il risultato di una query select che dovrebbe essere automaticamente un array, solo che se la query non trova niente nella tabella la variabile del risultato non conterrà niente, io pensavo che il foreach gestiva solo questa situazione;
    quindi mi consigli di verificarlo prima di chiamare il foreach?

  6. #6
    Originariamente inviato da barnico
    praticamento io gli passo il risultato di una query select che dovrebbe essere automaticamente un array
    E chi lo dice?

    Originariamente inviato da barnico
    solo che se la query non trova niente nella tabella la variabile del risultato non conterrà niente
    Il concetto di "niente" è molto personale (false, 0, '', array(), NULL, etc.).

  7. #7
    Utente di HTML.it L'avatar di barnico
    Registrato dal
    Oct 2001
    Messaggi
    490
    ok ho capito
    grazie

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.