php函数不返回任何值

php函数不返回任何值,php,Php,我正在尝试一个简单的二进制搜索。我希望这个函数返回'false'或'true',但它似乎什么也不返回。我尝试返回整数或字符串,只是想看看它是否会返回另一个数据类型,但它似乎没有这样做。我做错了什么 <?php function binarySearch($item, $first, $last){ $numbers=array(3, 5, 9, 11, 17, 24, 38, 47, 50, 54, 57, 59, 61, 63, 65); if ($fi

我正在尝试一个简单的二进制搜索。我希望这个函数返回'false'或'true',但它似乎什么也不返回。我尝试返回整数或字符串,只是想看看它是否会返回另一个数据类型,但它似乎没有这样做。我做错了什么

<?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);

对binarysearch的递归调用应该返回调用堆栈中该调用的响应 函数binarySearch($item、$first、$last){

$numbers=数组(3,5,9,11,17,24,38,47,50,54,57,59,61,63,65);
如果($first>$last){
返回false;
} 
否则{
$middle=($first+$last)/2;
$middle=(int)$middle;
如果($item==$numbers[$middle]){
echo“找到正确的值
”; 返回true; }
elseif($item只有当
$first
大于
$last
时,您的二进制搜索函数才会返回

在所有其他情况下,它不会返回任何内容


return
放在binarySearch函数中的函数调用之前。

对binarySearch的递归调用应将该调用的响应返回到调用堆栈中
    $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]){
            return binarySearch($item, $first, $middle-1);
        }
        else {
            return binarySearch($item, $middle+1, $last);
        }
    }   
}