PHP实现递归排序

1:静态变量

这种方法我们主要利用static定义静态变量来实现递归排序。如上我们定义了一个digui1方法和静态变量i,如果我们不给i,如果我们不给i,如果我们不给i变量添加判断,而是直接运行,显然就会出现死循环。

所以这里我们添加了一个if条件判断语句。最后循环调用自身方法,

/**     * 静态变量实现     */    function digui1()    {        static $i = 0;        echo $i;        $i++;        if($i <= 10)        {            digui1();        }        return;    }    digui1();

2:全局变量实现

此种方法主要利用global定义全局变量来实现PHP递归排序。如上我们先定义了一个ii变量,再创建一个digui2方法,在这个方法中,定义ii变量,再创建一个digui2方法,在这个方法中,定义ii变量,再创建一个digui2方法,在这个方法中,定义ii为全局变量,那么最后循环调用自身方法结果和上述结果是一样的:

$ii = 0;    /**     * 全局变量实现     */    function digui2()    {        global $ii;        echo $ii;        $ii++;        if($ii<=10){            digui2();        }    }    digui2();

3:引用传值实现

大家在使用这个方法时,可以简单了解下PHP中引用传递的概念:可以将一个变量通过引用传递给函数,这样该函数就可以修改其参数的值。利用引用传参来实现PHP递归排序是最基础简单的一种算法了。

注:在调用自身方法时,一定要将参数传递进去,否则就会报错。

/**     * 引用传值实现     */    function digui3(&$ss)    {        echo $ss;        $ss++;        if($ss <= 10)        {            digui3($ss);        }    }    $ss = 0;    digui3($ss);

以上就是实现递归的三种方法,挺有意思的,下面我是用递归来实现字符串反转。

/**     * 相当于两层循环翻转字符串     */    function reversal_one($str)    {        var_dump("sss:".$str);        static $result = '';        if (strlen($str) > 0) {            reversal_one(substr($str, 1));        }        var_dump("qqqqq:".$str);        $result .= substr($str, 0, 1);        var_dump("vvvvvvvv:".$result);        return $result;    }     $s = "hello";    $res = reversal_one($s);    var_dump($res);

以上就是关于递归的基本内容。

递归   PHP
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章