+ -
当前位置:首页 → 问答吧 → 大家帮忙分析下这段函数输出?

大家帮忙分析下这段函数输出?

时间:2011-10-14

来源:互联网

大家帮忙分析下:输出结果?
<?php
function a($n)
{
  return ( b($n) * $n );
}
function b(&$n){
  ++$n;
}

echo a(5);
?>

作者: linglingtong   发布时间: 2011-10-14

function b都没有返回值。怎么计算?
请加上 return

作者: ohmygirl   发布时间: 2011-10-14

蛋疼。。。
6*5=30
不会这么简单吧

作者: dream1206   发布时间: 2011-10-14

如果加上return 
那么a(5)实际上就相当于 b(5)*$n,执行完b(5)后返回值是6,也就是b(5) =6.且$n 加1变为6.所以最后的结果是
6*6=36.

作者: ohmygirl   发布时间: 2011-10-14

啊,加 return 36

作者: dream1206   发布时间: 2011-10-14

引用 3 楼 ohmygirl 的回复:
如果加上return
那么a(5)实际上就相当于 b(5)*$n,执行完b(5)后返回值是6,也就是b(5) =6.且$n 加1变为6.所以最后的结果是
6*6=36.

感谢指点!
但原代码确实没有return,执行结果不是36.

作者: linglingtong   发布时间: 2011-10-14

如果没有 return 。因为b()函数是没有返回值的。
所以相乘的结果是没有意义的

作者: ohmygirl   发布时间: 2011-10-14

引用 6 楼 ohmygirl 的回复:
如果没有 return 。因为b()函数是没有返回值的。
所以相乘的结果是没有意义的

哦,怪不得结果是0,感谢您!

作者: linglingtong   发布时间: 2011-10-14

相关阅读 更多