//递归获得角色ID字符串
function explodeRole($roleObj, &$resultStr){
if(0 < count($roleObj->childRoleObjArr)){
foreach($roleObj->childRoleObjArr as $childRoleObj){
if(” == $resultStr){
$resultStr .= “{$childRoleObj->id}”;
}else{
$resultStr .= “, {$childRoleObj->id}”;
}
explodeRole($childRoleObj, $resultStr);
}
}
}
//递归获取级联角色信息数组
function makeRoleRelation(&$roleObjArr){
foreach($roleObjArr as $item){
$item->childRoleObjArr = getRoleObjArrByParentId($item->id);
if(0 < count($item->childRoleObjArr)){
makeRoleRelation($item->childRoleObjArr);
}
}
}
//通过父角色的id获取子角色信息
function getRoleObjArrByParentId($parentid){
$operCOGPSTRTSysRole = new COGPSTRTSysRole();
$operCOGPSTRTSysRole->setColumn($operCOGPSTRTSysRole->getAllColumn());
$operCOGPSTRTSysRole->setWhere(“parentroleid={$parentid}”);
$roleObjArr = $operCOGPSTRTSysRole->convResult2ObjArr($operCOGPSTRTSysRole->selectTable());
return isset($roleObjArr)?$roleObjArr:array();
}
php递归函数用法
在函数体内调用自身的函数称为递归调用. 这样的函数称为递归函数. 对于程序员来说递归函数例子,这通常具有很高的实用价值. 它通常用于将复杂的问题分解为简单且相同的情况,然后重复执行此过程,直到问题解决为止.
使用递归函数与不使用递归函数的区别
示例1: 使用静态变量
function test(){
static $dig=0;
if($dig++<10){
echo $dig;
test();
}
}
test();//12345678910
示例2: 使用递归函数和循环来反转字符串的排列
function unreverse($str){
for($i=1;$i<=strlen($str);$i++){
echo substr($str,-$i,1);
}
}
unreverse(“abcdefg”);//gfedcbc
function reverse($str){
if(strlen($str)>0){
reverse(substr($str,1));
echo substr($str,0,1);
return;
}
}
reverse(“abcdefg”);//gfedcbc
在许多情况下,递归函数可以由循环代替. 建议在无法使用循环的情况下使用循环递归函数例子,因为循环更易于理解且不易出错.
php递归函数php付款递归函数,递归函数是调用自身,这些函数特别适合浏览动态数据结构,例如树和列表.
很少有Web应用程序需要复杂的数据结构
function reversr_r($str)
{
if (strlen($str)>0)
reverse_r(substr($str,1));
echo substr($str,0,1);
return;
}
?>
function reverse_i($str)
{
for($i=1;$i<=strlen($str);$i++)
{
echo substr($str,-$i,1);
}
}
此程序列表中实现了两个函数,并且两个函数都可以以相反的顺序打印字符串的内容
reverser_r函数通过递归实现,reverse_i()函数通过循环实现
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-166954-1.html
今天的文章php 递归函数 示例,php递归使用示例(php递归函数)分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/33681.html