账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    关于PHP简单递归查询问题
    74
    0
    public function randRateCode()
        {
            $rate = randpw(); //随机生成一个字符串
            $rs = $this->Agent->where("rate='".$rate."'")->find();
            //查询这个字符串在数据库中是否纯在
            if($rs){
                //如果存在
                $rate = $this->randRateCode();
            }
            return $rate;
        }

    代码如上,我随机生成一个字符串,然后去数据库匹配,如果匹配到,则递归该方法,最后返回这个字符串

    我的问题是

    我最终return的值,是合法的(数据库不存在的)还是不合法的(数据库存在的),为什么!为什么!为什么!

    我是这么理解的,最终 return 是合法的

    因为当不合法的时候,return 保留执行(没有立即执行),当合法的时候,立即执行 return ,函数在return后立即终止,不会再去执行之前未执行的 return …

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 冉是非 普通会员 1楼

      在PHP中,递归查询是一种将问题分解为更小的子问题的方法。它通常涉及到遍历树或图等数据结构,然后根据结果调用自身,以解决更复杂的问题。

      以下是一个简单的PHP递归查询示例,用于从数组中获取所有偶数:

      ```php function getEvenNumbers($array){ if(count($array) == 0){ return []; } return [ $array[0] => getEvenNumbers($array[1:]) ]; }

      // 示例用法 $array = [1, 2, 3, 4, 5]; $evenNumbers = getEvenNumbers($array); print_r($evenNumbers); ```

      在这个例子中,getEvenNumbers函数接收一个数组作为参数,然后检查数组的长度。如果长度为0,函数返回一个空数组。否则,函数将数组的第一个元素及其所有后续元素作为一个数组返回。这是一个递归过程,因为数组的下一个元素将引发新的递归调用。

      这个函数的递归过程可以分解为更小的问题,例如找到数组中的第一个偶数,然后找到数组中的所有偶数,直到数组为空。然后,这些子问题将进一步分解为更小的问题,直到达到基本情况,即数组为空。

      递归查询在PHP中是一种常见的数据结构操作,用于处理复杂的、需要递归调用的问题。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部