php 遞歸問題

第一,沒有選擇資料庫,在連接資料庫後添加mysql_select_db("資料庫名");
第二、我感覺不代碼不全吧,因為我拷下來看了一下,少一},當然上面那個沒少,補充的少了。
第三、還有沒看出這個$ii是干什麼用的。
第四、沒感覺$selec=0與不等於0輸出有什麼不同。
第五、以後最好是把html代碼與程序分開寫。
因為不知道需求,只能根據你的程序簡單修改如下:
<?php
function TreeMenu($selec) {
$Conn=mysql_connect("localhost","kk","kk123");
mysql_select_db("資料庫名");
$ii=1;
$sql="select * from tvmenu where bid=".$selec;
$result=mysql_query($sql,$Conn);
$str = "";
while($row =mysql_fetch_array($result)) {
if($selec=0) {

$str = '<option value="'.$row['id'].'">'.$row['name'].'></option> ';

}else {

$str = '<option value="'.$row['id'].'">'.$row['name'].'></option> ';

}
echo $str;
$ii++;
TreeMenu($row['id']);
$ii--;
}
}
?>

<select name="bid" id="bid">
<?php
TreeMenu(0);
?>
</select>

❷ php遞歸解決一個問題

if($piano_nums<100)
{
get_new_nums($days+5);
}else{
return$piano_nums;
}


我沒測試過 不過感覺這樣內可行容

❸ php遞歸問題(無限極分類)

foreach本身就相當於判斷了啊,當$arr數組非空時foreach會遍歷並遞歸訪問子節點,但是對於葉子結點,$arr數組是空的,根本不會被foreach,此時直接return了。明白?

❹ 簡單的php遞歸調用問題

這是因為 static 的原因. 靜態變數(static)僅在局部函數域中存在且只被初始化一次,當程序執行離開此作用域時,其值不會消失,會使用上次執行的結果。 所以你的代碼里第一次運算完了之後$i的值為2, 第二次就直接在2上加1,就是3了. 所以你不能這樣寫. 我推薦你把$i作為參數傳過去, 就ok了.代碼如下
另外:還有一個小問題就是strpos查找字元串如果在被查找字元串首的話會返回0, 所以要用!==false來判斷, 否則會有問題;

$str="procts-2-1.html";
$str2="procts-3.html";
function str_count($str,$chr, $i=0){
$p = strpos($str, $chr);
if($p !== false){
$i++;
return str_count(substr($str,$p+1),$chr, $i);
} else {
return $i;
}
}
echo str_count($str,'-').'<br>';//輸出2
echo str_count($str2,'-');//輸出1

不過呢, 告訴你一個小秘密, 其實你寫的這個函數在php函數庫中已經有了, 就是
substr_count具體的你網路下吧, 直接用這個就行了
echo substr_count($str, '-');
echo substr_count($str2, '-');

❺ php遞歸函數的問題解答

我覺得這個「--」最好少用。
現在很多編程教材對++、--的理解都是不準確內的。
關鍵問題在於

當$num=4時容
return $num+sum(--$num);
是希望表達 return 3+sum(3) 還是 return 4+sum(3)
實際上,這個語句的這兩個解釋都是正確的,你的理解可能和你的電腦理解不同。

--發生的時刻可能是整個語句的開始,也就是
先$num=$num-1,然後再$num+sum($num);
--發生的時間只要早於sum($num)往裡面傳遞參數,並且在整個表達式的執行過程中就可以。

❻ 一個PHP 遞歸的問題。希望高手給一下答案

簡單說一下這段代碼的問題在哪兒~~
從你的思路上來說,你應該是內想實現一個乘法表,容但是出現一個很嚴重的問題,按照你的意思,你應該是想將 $beiCengSu ++ ,然後遞歸調用的時候能夠生效,但是事實上,每次調用函數的時候,$beiCengSu 這個變數都會被初始化為 1,也就是說,這里的 ++ 執行了,但是沒有任何實際的意義,對於每一層調用來說,$beiCengSu 這個變數的值都是 1,所以這個函數就直接陷入死循環了~~

❼ php遞歸問題

<?php
$str="a/b/c";
$array = explode("/",$str);
splitStr($array,0);
function splitStr($array,$index)
{
if(count($array) == $index) return;
$echoArray = array();
for($i=0;$i<$index + 1;$i++) {
$echoArray[] = $array[$i];
}
echo implode("/",$echoArray)."<br />";
splitStr($array,$index + 1);
}
?>

❽ php遞歸問題:

不明白其他記錄是什麼記錄,另:
foreach($child as $key=>$value){
$menu_arr[$value['id']] = $value;
//$this->menu($value['id'],$level);
$level++;
}
這好像已經放版到$menu_arr里了。權。。

❾ PHP 遞歸函數問題

echo sum($num);的作用是輸出sum函數的返回值,你不return返回的就是空,當然不能輸出正確值