Я пытаюсь выполнить простой двоичный поиск. Я ожидаю, что эта функция вернет «false» или «true», но, похоже, ничего не возвращает. Я попытался вернуть целые числа или строки, просто чтобы увидеть, вернет ли он другой тип данных, но, похоже, это не так. Что я делаю не так?php-функция не возвращает никакого значения
<?php
function binarySearch($item, $first, $last){
$numbers=array(3, 5, 9, 11, 17, 24, 38, 47, 50, 54, 57, 59, 61, 63, 65);
if ($first>$last){
return false;
}
else {
$middle=($first+$last)/2;
$middle=(int)$middle;
if ($item==$numbers[$middle]){
echo "found the correct value<br/>";
return true;
}
elseif ($item<$numbers[$middle]){
binarySearch($item, $first, $middle-1);
}
else {
binarySearch($item, $middle+1, $last);
}
}
}
$n=$_GET['txtTarget'];
$first=$_GET['txtFirst'];
$last=$_GET['txtLast'];
echo "the return value is: " . binarySearch($n, $first, $last);
?>
Рекурсивные обращения к бинарному поиску должны возвращать ответ от этого вызова, создавая резервную копию стека вызовов –