du_1993 2011-11-12 13:35
浏览 61
已采纳

为什么我的函数总是返回false?

why does my function always return false? i think the problem is caused by the isset function but i really dont know how to fix it

$big = array(
2,3,5,7,11,13,17,19,23
,29,31,37);

$fbig = array_flip ($big);


function isprime($n){
    if($n < 2){
        return FALSE;
    }
    if($n > 2147483647){
        return FALSE;
    }
    if($n < 46341){ 
        if(isset($fbig[$n])){


            return TRUE;
        } else {
            return FALSE;
        }
    }
}

$b = 11;
if(isprime($b)){echo "lol";}
  • 写回答

3条回答 默认 最新

  • dongti8535 2011-11-12 13:37
    关注
    if(isset($fbig[$n])){
    

    This line is the problem.

    1. What you want to check is not isset($fbig[$n]) (which checks if there is something in the array at the index $n) but in_array($n, $fbig) (which checks if the array $fbig contains the value $n).

    2. The array $fbig is not in the scope of the function since it's defined outside. But you can pass it:

    if(isprime($b, $fbig)){echo "lol";}

    should work just fine.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 求TYPCE母转母转接头24PIN线路板图
  • ¥100 国外网络搭建,有偿交流
  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型