Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    array_pop: fatal error con explode

    Salve ragazzi. Ho riscontrato un errore molto molto strano (forse dovuto ad un bug?).

    Provate ad eseguire queste due righe che in teoria dovrebbero restituire l'estensione di un file:

    Codice PHP:
    $filename 'prova.php' ;
    echo 
    array_popexplode'.' $filename ) ) ; 
    Mi restituisce quest'errore:
    Fatal error: Only variables can be passed by reference in d:\sunwebagency\projects_5\_sviluppo\alfabreeze\pr ova\prova.php on line 3

    Ma come? Io non ho passato niente come referenza!!!
    Qualcuno ha una spiegazione logica? Io non la trovo!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  2. #2
    fai così:

    Codice PHP:
    $filename 'prova.php' ;
    $filename_arr explode('.' $filename);
    echo 
    array_pop($filename_arr) ; 

  3. #3
    Oh, grazie mille!
    Lo so come va aggirato l'errore!
    Io voglio capire perchè si verifica!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  4. #4
    Originariamente inviato da mircov
    Oh, grazie mille!
    Lo so come va aggirato l'errore!
    Io voglio capire perchè si verifica!
    ho provato con php 5.1.4 e non mi da errore.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Io ho la 5.0.5.
    In realtà è stato provato anche su un altro pc (non mio ma su cui non credo giri la ver che ho io) e nemmeno dà errore. Solo a me che ho questa versione. Magari se qualcun'altro che ha questa versione prova...
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  6. #6
    Originariamente inviato da mircov
    Io ho la 5.0.5.
    In realtà è stato provato anche su un altro pc (non mio ma su cui non credo giri la ver che ho io) e nemmeno dà errore. Solo a me che ho questa versione. Magari se qualcun'altro che ha questa versione prova...
    Si. la 5.0.5 da errore su molte di queste condizioni... in pratica quando passi l'output di una funzione direttamente in input ad altra funzione.

    Per esempio nella paginazione di guidozz...

    $righe = mysql_num_rows(mysql_query($query));

    da errore. mentre nella versione 5.1.4 questo non succede piu'. In pratica nella 5.0.5 accetta solo variabili in input. Non saprei se vale per tutto. Non uso mai questo tipo di annidamento, non mi piace perche' nel debug e' una inutile complicazione di leggibilita'. Fa perdere tempo in altre parole.

    in cambio con la 5.1.4 va in errore apache nello stop (restart) del server. Il problema e' legato alla versione di php, forse a causa di qualche estensione.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7

    Re: array_pop: fatal error con explode

    Originariamente inviato da mircov
    Salve ragazzi. Ho riscontrato un errore molto molto strano (forse dovuto ad un bug?).

    Provate ad eseguire queste due righe che in teoria dovrebbero restituire l'estensione di un file:

    Codice PHP:
    $filename 'prova.php' ;
    echo 
    array_popexplode'.' $filename ) ) ; 
    Mi restituisce quest'errore:
    Fatal error: Only variables can be passed by reference in d:\sunwebagency\projects_5\_sviluppo\alfabreeze\pr ova\prova.php on line 3

    Ma come? Io non ho passato niente come referenza!!!
    Qualcuno ha una spiegazione logica? Io non la trovo!
    Ripeti con me: "il manuale è mio amico"
    mixed array_pop ( array &array )
    Come puoi vedere, array_pop ha il parametro passato per riferimento, quindi, come l'errore ti suggerisce, non puoi passargli il risultato di una funzione ma devi passargli una variabile.

  8. #8

    Re: Re: array_pop: fatal error con explode

    Originariamente inviato da skidx
    Ripeti con me: "il manuale è mio amico"

    Come puoi vedere, array_pop ha il parametro passato per riferimento, quindi, come l'errore ti suggerisce, non puoi passargli il risultato di una funzione ma devi passargli una variabile.
    in 5.1.4 funziona....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9

    Re: Re: Re: array_pop: fatal error con explode

    Originariamente inviato da piero.mac
    in 5.1.4 funziona....
    Avranno fatto in modo che il risultato di una funzione possa essere passato per riferimento, in ogni modo mircov sbagliava comunque approccio perché il passaggio per riferimento si fa specificandolo nel parametro formale della funzione, quindi non può dire "Io non ho passato niente come referenza!!!" solo guardando la chiamata.

  10. #10

    Re: Re: Re: Re: array_pop: fatal error con explode

    Originariamente inviato da skidx
    Avranno fatto in modo che il risultato di una funzione possa essere passato per riferimento
    viene comunque generato uno strict warning:
    Strict Standards: Only variables should be passed by reference in d:\localhost\www\prove.php on line 12

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 © 2024 vBulletin Solutions, Inc. All rights reserved.