возврат функции: PHP - PullRequest
       0

возврат функции: PHP

0 голосов
/ 25 февраля 2012

Я не уверен, что мне не хватает, но я не могу заставить $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 ]

3 голосов
/ 25 февраля 2012

sqrt всегда возвращает число с плавающей запятой.Ваше утверждение if всегда ложно.

Если вы хотите выполнить проверку, сделайте следующее:

$i = (int) $c;

if($c == $i) return $c

Что это делает, это приводит к тому, что float преобразуется в int, а если float $c и int $i равны, тогда он вернет

1 голос
/ 25 февраля 2012

sqrt возвращает float, поэтому is_int всегда ложно.

Если вы действительно хотите проверить, является ли оно целым числом, вы можете использовать:

if ((int)$c == $c)
    return $c;
1 голос
/ 25 февраля 2012

sqrt возвращает float, который не является int, поэтому ваша функция ничего не возвращает.Просто отмените проверку is_int?

0 голосов
/ 25 февраля 2012
<?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

?>
0 голосов
/ 25 февраля 2012

Это опечатка в вашем результате

function pythThm($a, $b){
    $a2 = pow($a, 2);
    $b2 = pow($b, 2);
    $c = sqrt($a2 + $b2);
    return (int)$c;
}

echo pythThm(3, 4);
...