Problema: Ritorno variabile da una funzione.

di
Anonimizzato30060
il
3 risposte

Problema: Ritorno variabile da una funzione.

Salve, mi sto approcciando a PHP e sono arrivato alle funzioni, sto cercando di far cambiare il valore di una variabile da NULL/FALSE a TRUE usando le funzioni.
Quando avvio il programma la variabile non cambia, come faccio?

Vi posto il codice del file index.php e del file funzioni.php:
<?php

    $pass = NULL;

    $array = array(
        "array1" => $pass,
    );

    include "funzioni.php";
    funzione();

    if ($array["array1"] == NULL){
        echo "Il valore non è cambiato (NULL).";
    } else {echo "Il valore è cambiato.";}

?>
<?php

    function funzione(){

        $pass = TRUE;
        return $pass;

    }

?>

3 Risposte

  • Re: Problema: Ritorno variabile da una funzione.

    Devi creare una variabile che contenga il valore della tua funzione l'istruzione return torna un valore non stai stampando nulla quindi var_dump(funzione());
    Poi leggi https://www.php.net/manual/en/functions.user-defined.php e anche global scope , local scope etc. (In effetti anche spazio dei nomi)
    https://www.php.net/manual/en/language.variables.scope.php
  • Re: Problema: Ritorno variabile da una funzione.

    Hormus ha scritto:


    Devi creare una variabile che contenga il valore della tua funzione l'istruzione return torna un valore non stai stampando nulla quindi var_dump(funzione());
    Poi leggi https://www.php.net/manual/en/functions.user-defined.php e anche global scope , local scope etc. (In effetti anche spazio dei nomi)
    https://www.php.net/manual/en/language.variables.scope.php
    Non capisco...
  • Re: Problema: Ritorno variabile da una funzione.

    Nel tuo esempio è sbagliata a priori la logica.
    Seguendo il tuo schema: 1) prima dichiari la variabile, 2) poi la inserisci nell'array, 3) poi chiami una funzione che modifica la variabile ma NON la inserisci nell'array, 4) verifichi la variabile dell'array che non è stata minimamente modificata.

    Inoltre all'interno di una funzione non puoi modificare un valore posto all'esterno, o passi l'array alla funzione lo modifichi e lo restituisci oppure lo crei nuovo come nel mio esempio.

    La modifica che suggerisco è
    
        	include "funzioni.php";
    	$array = array(
            	"array1" => NULL,
        	);
        	$array = funzione();
        if ($array["array1"] == NULL){
            echo "Il valore non è cambiato (NULL).";
        } else {echo "Il valore è cambiato.";}
      
    
    la funzione sarà:
    
        function funzione(){
    
            return array(
            	"array1" => TRUE,
        	);
    
        }
    
    Spero di essermi spiegato bene.
    Buon natale a tutti
Devi accedere o registrarti per scrivere nel forum
3 risposte