[請益] function中 return的問題

看板PHP作者 (歐北共)時間17年前 (2008/06/27 23:01), 編輯推噓1(1017)
留言18則, 6人參與, 最新討論串1/2 (看更多)
<?php $a=add("1"); print "$a"; function add($a){ $b = $a + 1; if( $b < 10 ){ add($b); }else{ #print "$b"; #這行可以印出 10 return "$b"; } } ?> print這邊無法print值出來...可是確定有跑到 return "$b"; 這邊... 請問一下板上的高手...我是哪邊搞錯了??? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.223.192

06/27 23:06, , 1F
return $b;
06/27 23:06, 1F

06/27 23:10, , 2F
還是不行 = = ...我還是試過return "100"..也是沒傳
06/27 23:10, 2F
※ 編輯: youshi321 來自: 140.113.223.192 (06/27 23:13)

06/27 23:19, , 3F
好奇怪的function... o_O
06/27 23:19, 3F

06/27 23:25, , 4F
return add($b); //沒這樣最上層遞迴當然接不到值~
06/27 23:25, 4F

06/27 23:31, , 5F
樓上的...我這樣用結果是一直跑add不會停了阿 = =
06/27 23:31, 5F

06/27 23:31, , 6F
不過還是很感謝您提供的建議...
06/27 23:31, 6F

06/27 23:53, , 7F
先搞清楚啥是字串,啥是數字吧...
06/27 23:53, 7F

06/28 00:35, , 8F
這樣做不會有問題啊.. 除非你是寫成return add($a);
06/28 00:35, 8F

06/28 00:36, , 9F
耶.. 你搞錯return add($b)的位置了吧..
06/28 00:36, 9F

06/28 00:37, , 10F
if()下面的add($b) 改 return add($b);
06/28 00:37, 10F

06/28 00:43, , 11F
哇哈...太感謝scornn...果然是我搞錯位置 = =b
06/28 00:43, 11F

06/28 00:43, , 12F
原來我原本寫的方式..會把值return到上一層..不是第
06/28 00:43, 12F

06/28 00:44, , 13F
一層...會傳到$b=9那層...
06/28 00:44, 13F

06/28 00:45, , 14F
我的問題是在做搜尋的..要一直call本身的funciton
06/28 00:45, 14F

06/28 00:45, , 15F
但是我那個程式太雜..所以自己弄了個類似的問題
06/28 00:45, 15F

06/28 00:46, , 16F
不過想請教一下Joe大..您說的問題...是指我錯在哪?
06/28 00:46, 16F

06/28 01:15, , 17F
為什麼要把 1 用 " " 框起來阿@@
06/28 01:15, 17F

06/28 13:34, , 18F
喔...懂了...感謝樓上~~^^
06/28 13:34, 18F
文章代碼(AID): #18PG3Goh (PHP)
討論串 (同標題文章)
文章代碼(AID): #18PG3Goh (PHP)