Возврат функции: PHP
Я не уверен, что мне не хватает, но я не могу получить $c
правильно выводить.
<?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
?>
Я прошу прощения за вопрос новичка.
Решение проблемы:
<?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
?>
Спасибо всем, кто ответил... Я обязательно прочитаю полную информацию о функции в следующий раз!
5 ответов
Решение
sqrt
возвращает float
, который не является int
, так что ваша функция ничего не возвращает. Просто оставь is_int
проверять?
sqrt
всегда возвращает поплавок. Ваше заявление if всегда ложно.
Если вы хотите сделать проверку, сделайте это:
$i = (int) $c;
if($c == $i) return $c
То, что это делает, бросает float к int, и если float $c
и инт $i
равны, тогда он вернется
sqrt
возвращает float
, вот почему is_int
всегда ложно.
Если вы действительно хотите проверить, является ли оно целым числом, вы можете использовать:
if ((int)$c == $c)
return $c;
Это опечатка в вашем результате
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
?>