以下输出为1102555
。这怎么可能?递归是先发生还是回声?
abc(11);
function abc($a){
if(intval($a/2) != 0){
echo abc(intval($a/2)) + 10 * ($a/2);
}else{
echo 1;
}
}
答案 0 :(得分:1)
在这种情况下,递归是第一位的。从最内层到外层评估表达。所以在这种情况下它是这样的:
答案 1 :(得分:1)
在你的情况下,首先会发生递归,因为每当你用$ a / 2大于0调用函数abc时,echo中的abc()会一次又一次地被调用,直到$ a / 2的值为少于0。