Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080

    Problema funzione banale

    Ciao a tutti.
    Premesso che il codice funziona, non riesco a capire come mai non va all'interno di una funzione.
    Funzione:
    Codice PHP:
    function pulisciarr($content){
        
    $content substr($content,10);
        
    $content substr($content0, -2);
        
    $content str_replace(":\\""\\"$content);   
        return 
    $content;

    Codice:
    Codice PHP:
    echo $content;
    pulisciarr($content);
    echo 
    $content
    Se invece della funzione pulisciarr($content); inserisco i passaggi dentro la fuznione (ad eccezione del return funziona), ma non capisco come mai non mi vede le modifiche che faccio.

    Grazie

  2. #2

  3. #3
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,708
    Ciao, la variabile $content non viene modificata perché la stai passando alla funzione come valore e non come riferimento.

    Dentro la funzione avrai quindi una variabile locale ($content) definita come argomento della funzione stessa ma sarà diversa da quella definita fuori dalla funzione. Anche se entrambe hanno lo stesso nome, sono definite in due ambiti diversi.

    Per risolvere puoi riassegnare alla variabile esterna ciò che viene restituito dalla funzione (mantenendola così come è), come suggerito da filippo.toso:
    Codice PHP:
    ...
    $content pulisciarr($content);
    echo 
    $content
    Oppure puoi passare la variabile come riferimento:
    Codice PHP:
    function pulisciarr(&$var){...}
    ...
    pulisciarr($content);
    echo 
    $content
    vedi documentazione: https://www.php.net/manual/en/langua...ences.pass.php

    In questo caso, dentro la funzione non hai bisogno del return, dal momento che la stessa variabile (definita esternamente alla funzione) viene modificata direttamente attraverso la funzione a cui è passata come riferimento.

    NOTA: in entrambe i casi, che si passi la variabile per valore o per riferimento, non è obbligatorio che il nome dell'argomento, definito nella funzione, coincida con quello della variabile esterna.

    Tra le altre cose, queste due righe:
    Codice PHP:
    $content substr($content,10);
    $content substr($content0, -2); 
    possono essere ridotte ad una sola, in questo modo:
    Codice PHP:
    $content substr($content102); 
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  4. #4
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Grazie a tutti confermo con:
    codice:
    function PulisciArr(&$content) {
    Ho risolto tutto!

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.