Rumah > pembangunan bahagian belakang > tutorial php > "圣经"递归问题的困惑 想了一天555也无解...

"圣经"递归问题的困惑 想了一天555也无解...

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-06-23 14:22:44
asal
707 orang telah melayarinya

本帖最后由 iamsai 于 2013-09-24 21:00:08 编辑

<?php	$str='hello';	reverse_i($str);	function reverse_i($str)	{		if(strlen($str)>0)		{   			reverse_i(substr($str,1));			                }				echo substr($str,0,1);		return;	}?>
Salin selepas log masuk


请大家看我的问题:
此程序的输出结果是倒序输出 olleh .
经过循环体中reverse_i(substr($str,1));语句的操作 hello ello llo lo o
当字符长度==0时,echo substr($str,0,1); 输出o.
return语句返回什么值呢?是返回到第四行?后面的执行顺序是什么呢?有谁能帮我分析分析?谢谢大侠了!


回复讨论(解决方案)

return;是返回的意思,也就这函数的程序不再往下面跑了,函数不需要返回值,所以就不加了!

那只能输出o?

为什么会输出hello呢有谁能帮我分析分析

你直接加我qq吧,

643461761

$str='hello';var_dump(reverse_i($str)); //看看返回了什么function reverse_i($str){  echo $str, PHP_EOL; //看看传入了什么  if(strlen($str)>0)  {       reverse_i(substr($str,1));  }  echo substr($str,0,1);  return;}
Salin selepas log masuk
Salin selepas log masuk
hello
ello
llo
lo
o

ollehNULL

$str='hello';var_dump(reverse_i($str)); //看看返回了什么function reverse_i($str){  echo $str, PHP_EOL; //看看传入了什么  if(strlen($str)>0)  {       reverse_i(substr($str,1));  }  echo substr($str,0,1);  return;}
Salin selepas log masuk
Salin selepas log masuk
hello
ello
llo
lo
o

ollehNULL
  echo substr($str,0,1);  的功能不是输出字符串的第一个字符吗?那它输入完0以后return NULL到调用函数程序不就结束了吗?为什么会输出llehNULL

  if(strlen($str)>0)
  {   
    reverse_i(substr($str,1)); //这是一次递归调用
             }
  echo substr($str,0,1);
  return;

在第一次递归结束后 Return是返回o这个值到if的函数体吗?怎么和c语言不一样?不是直接返回这个值到调用它的函数?

在第一次递归结束后 Return是返回o这个值到if的函数体吗?怎么和c语言不一样?不是直接返回这个值到调用它的函数?

在第一次递归结束后 Return是返回o这个值到if的函数体吗?怎么和c语言不一样?不是直接返回这个值到调用它的函数?

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan