PHP:有人能解释一下这段代码是如何工作的吗?(斐波那契)

PHP:有人能解释一下这段代码是如何工作的吗?(斐波那契),php,fibonacci,Php,Fibonacci,我保证这不是家庭作业。我只是个好奇的新手 这是如何做到的: function f($i){return $i<2?$i:f($i-1)+f($i-2);} 地雷 我想我就是不懂语法。那里有if语句吗?操作符?它被命名为三元运算符。它的用法类似于:p1?p2:p3,它表示如果p1为真,则为p2,否则为p3。运算符?它被命名为三元运算符。它的用法类似于:p1?p2:p3。它表示如果p1为真,则为p2,否则为p3。问号是一个条件表达式: x ? a : b 如果x为真,则计算为a,如果为假,

我保证这不是家庭作业。我只是个好奇的新手

这是如何做到的:

function f($i){return $i<2?$i:f($i-1)+f($i-2);}
地雷


我想我就是不懂语法。那里有if语句吗?

操作符?它被命名为三元运算符。它的用法类似于:p1?p2:p3,它表示如果p1为真,则为p2,否则为p3。

运算符?它被命名为三元运算符。它的用法类似于:p1?p2:p3。它表示如果p1为真,则为p2,否则为p3。

问号是一个条件表达式:

x ? a : b

如果x为真,则计算为a,如果为假,则计算为b。

问号是一个条件表达式:

x ? a : b

如果x为真,则计算为a,如果为假,则计算为b。

第一个函数是速记。这就是它所做的

if($i < 2) { // $i < 2 ?
  return $i;
}
else { // :
  return f($i-1)+f($i-2);
}

如果小于2,则不必调用函数。如果是2或更大,则递归调用该函数。

第一个函数是速记。这就是它所做的

if($i < 2) { // $i < 2 ?
  return $i;
}
else { // :
  return f($i-1)+f($i-2);
}
function f($i){return $i<2?$i:f($i-1)+f($i-2);}
如果小于2,则不必调用函数。如果为2或更大,则递归调用该函数

function f($i){return $i<2?$i:f($i-1)+f($i-2);}
意味着

这是斐波那契方程的直接表达式

另一个函数创建并使用生成结果的缓存:这是一个重要的优化,因为例如,计算fib4会对fib2进行3到4次计算,而对fib1进行更多的计算

意味着

这是斐波那契方程的直接表达式


另一个函数创建并使用生成结果的缓存:这是一个重要的优化,因为例如,对fib4求值可能会对fib2求值3到4次,而对fib1求值的次数会更多。

其中有一个if语句。这叫一个


如果$i小于2,则返回$i,否则返回f$i-1+f$i-2。我假设递归函数调用并不是你在理解上遇到的问题,但是如果是的话,如果你在谷歌上搜索递归斐波那契代码,就会有很多例子。

其中有一个if语句。这叫一个


如果$i小于2,则返回$i,否则返回f$i-1+f$i-2。我假设递归函数调用并不是你在理解上遇到的问题,但如果是的话,如果你在谷歌上搜索递归斐波那契代码,就会有很多例子。

是的!在F100上尝试这两种功能。是的!在F100上尝试这两种功能。