عودة الوظيفة:بي أتش بي
-
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
و كثافة العمليات $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
?>
لا تنتمي إلى StackOverflow