PDA

View Full Version : [PHP] - Delucidazione variabili locali, statiche e globali


tidusuper91
29-08-2009, 19:21
Salve, per esercitarmi con i primissimi capitoli di PHP studiati volevo creare un piccolo script di calcolo delle equazioni di secondo grado.


<?php

$a = $_GET[xquadro] ;
$b = $_GET[x] ;
$term = $_GET[term] ;

function calcola_delta($a, $b, $term)
{$delta = (bcpow($b,2,1) - 4*$a*$c) ;

} ;

calcola_delta ($a, $b, $term) ;

echo $delta . "<br //>";
echo $a . "<br //>" ;
echo $b . "<br //>" ;
echo $term . "<br //>" ;

var_dump($delta) ;






?>



Giustamente il var_dump di $delta mi dice che è NULL (essendo locale). Ma volendo portarla fuori non devo mettere static davanti a $delta? Se lo facccio non mi visualizza lo script..PErché

tidusuper91
30-08-2009, 01:50
UP

tidusuper91
30-08-2009, 17:03
<?php

$a = $_GET[xquadro] ;
$b = $_GET[x] ;
$term = $_GET[term] ;

function calcola_equaz($a, $b, $term)
{ $delta = (bcpow($b,2,1) - 4*$a*$term) ;

$sol1 = (-$b + sqrt($delta))/2*$a ;
$sol2 = (-$b - sqrt($delta))/2*$a ;

if ($delta < 0 )
{ echo 'Il delta è: ' . $delta . ' quindi la tua è un\'equazione <br />
non è risolvibile<br/>' ;
}

else if ($delta == 0)
{ echo 'Il delta è : ' . $delta . ' quindi le tue soluzioni sono<br />
coincidenti. Soluzione:<br/> ' . $sol1 . ' = ' .$sol2 ;
}

else
{ echo 'Hai due soluzioni: <br />

Soluzione #1: '. $sol1 .
'<br />Soluzione #2: ' . $sol2. '<br/>';

}

}

calcola_equaz($a, $b, $term) ;

?>



Così funziona perfettamente ma, come posso fare per rendere stampabile aschermo una variabile locale di una funzione?

tidusuper91
31-08-2009, 15:59
UPP

IAmZak
01-09-2009, 21:15
non ho capito il tuo problema. tu non puoi stampare a schermo niente con php, in locale. php funziona lato server :-|

anche se lavorassi in html+php tipo:
<p>ciao <?php echo $nome; ?>, come stai?</p> non funzionerebbe lo stesso in locale.

cioè installati un webserver tipo apache se vuoi provare php, se no ciao

tidusuper91
01-02-2010, 15:48
non ho capito il tuo problema. tu non puoi stampare a schermo niente con php, in locale. php funziona lato server :-|

anche se lavorassi in html+php tipo:
<p>ciao <?php echo $nome; ?>, come stai?</p> non funzionerebbe lo stesso in locale.

cioè installati un webserver tipo apache se vuoi provare php, se no ciao

si supponeva che avessi già installato in locale il PHP e il webserver apache. -.- Funziona infatti... Solo che non riuscivo a stampare la variabile locale.

Torav
01-02-2010, 23:26
se ti interessa, come in questo caso, solamente un risultato di un'operazione effettuata da una funzione ti conviene far restituire il valore da quella funzione. Chiudi cioè la funzione calcola_equaz con un bel


function calcola_equaz($a, $b, $term) {
// tutto il corpo della funzione qui
return $delta;
}


e nel codice la richami come


$risultato = calcola_equaz($a, $b, $term);


all'interno di $risultato avrai proprio il valore di $delta

tidusuper91
02-02-2010, 00:12
se ti interessa, come in questo caso, solamente un risultato di un'operazione effettuata da una funzione ti conviene far restituire il valore da quella funzione. Chiudi cioè la funzione calcola_equaz con un bel


function calcola_equaz($a, $b, $term) {
// tutto il corpo della funzione qui
return $delta;
}


e nel codice la richami come


$risultato = calcola_equaz($a, $b, $term);


all'interno di $risultato avrai proprio il valore di $delta

Chiarissimo. Grazie mille.