Funzione Ritorno: PHP
-
12-11-2019 - |
Domanda
Non sono sicuro di quello che mi manca, ma non riesco a ottenere $c
in uscita correttamente.
<?php
function pythThm($a, $b){
$a2 = pow($a, 2);
$b2 = pow($b, 2);
$c = sqrt($a2 + $b2);
if(is_int($c)){return $c;}
}
echo pythThm(3, 4);
//outputs nothing, should be 5
?>
.
Mi scuso per la domanda principiante.
Soluzione al problema:
.
<?php
function pythThm($a, $b){
$a2 = pow($a, 2);
$b2 = pow($b, 2);
$c = sqrt($a2 + $b2);
if($c - round($c) == 0){return $c;}
}
echo pythThm(4, 4);
//returns nothing
echo pythThm(3,4);
//returns 5
?>
Grazie a tutti coloro che hanno risposto ... Assicurarmi di leggere le informazioni complete sulla funzione la prossima volta!
Soluzione
sqrt
restituisce un float
, che non è un int
, quindi la funzione non restituisce nulla.Seleziona il controllo is_int
?
Altri suggerimenti
sqrt
restituisce sempre un galleggiante.La tua dichiarazione se è sempre falsa.
Se vuoi fare il controllo, fallo:
$i = (int) $c;
if($c == $i) return $c
.
Cosa fa è lanciare il galleggiante a un int, e se il GeneracodictagCode del Galleggiante e il $c
INT sono uguali, quindi restituirà
sqrt
restituisce un float
, ecco perché is_int
è sempre falso.
Se vuoi davvero controllare se è un numero intero, puoi usare:
if ((int)$c == $c)
return $c;
. che è TYPO nel tuo risultato
.function pythThm($a, $b){
$a2 = pow($a, 2);
$b2 = pow($b, 2);
$c = sqrt($a2 + $b2);
return (int)$c;
}
echo pythThm(3, 4);
<?php
function pythThm($a, $b){
$a2 = pow($a, 2);
$b2 = pow($b, 2);
$c = sqrt($a2 + $b2);
return $c;
}
echo pythThm(3, 4);
//outputs nothing, should be 5
?>
.