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