retorno da função:PHP
-
12-11-2019 - |
Pergunta
Não tenho certeza do que estou perdendo, mas não consigo $c
para produzir corretamente.
<?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
?>
Peço desculpas pela pergunta de iniciante.
Solução para o 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
?>
Obrigado a todos que responderam...Leia as informações completas sobre a função na próxima vez!
Solução
sqrt
retorna um float
, o que não é int
, então sua função não retorna nada.Apenas deixe de lado is_int
verificar?
Outras dicas
sqrt
sempre retorna um float.Sua declaração if é sempre falsa.
Se você quiser fazer a verificação, faça o seguinte:
$i = (int) $c;
if($c == $i) return $c
O que isso faz é converter o float em um int, e se o float $c
e o int $i
são iguais, então ele retornará
sqrt
retorna um float
, é por isso is_int
é sempre falso.
Se você realmente deseja verificar se é um número inteiro, você pode usar:
if ((int)$c == $c)
return $c;
Isso é um erro de digitação no seu resultado
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
?>