Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698

    Unset per riferimento sembra non funzionare.

    Ho letto nella documentazione ufficiale che quando unset è chiamato all'interno di una funzione e viene applicato ad una variabile, di questa viene cancellata solo la copia locale anche se la variabile stessa era passata per riferimento. Cioe

    Codice PHP:

    function a(&$var)
    {
        unset(
    $var);
    }

    $a 1;
    a($a); 
    Al termine dell'esecuzione la variabile $a continua a contenere 1. Ok. Io ho un caso simile, vorrei avere conferma che il criterio è lo stesso:

    Codice PHP:

    foreach ($array as &$item) if ($condizione) unset($item); 
    Alla fine del ciclo sembra che $array contenga ancora l'item cancellato.
    Confermate?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    vado un po' a memoria... mi pare che non sia la stessa cosa (e infatti nel manuale si parla di "funzione")... d'altronde se hai provato e verifichi che NON viene eliminato l'elemento significa che non va bene, nel qual caso dovresti cambiare la scrittura con:

    Codice PHP:
    foreach ($array as $k=>$v) if ($condizione) unset($array[$k]); 
    o provare (MA NON HO VERIFICATO) con:
    Codice PHP:
    foreach ($array as &$item) if ($condizione$item=null

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    Si provare ho provato naturalmente, ma siccome il codice è piu complesso di quello che ho postato (che è un esempio, ridotto all'osso) volevo giusto capire se è cosi che funziona

    Grazie comunque

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.