PHP中如何实现函数自调用?

3
我对Laravel和PHP都很陌生,所以我决定查看核心代码并试着阅读一些内容,但当我到达这一部分时,我感到困惑!这个函数如何工作?$this->getAlias($this->aliases[$abstract]);一个函数能够调用自身吗?这不会导致循环吗?
protected function getAlias($abstract)
    {
        if (! isset($this->aliases[$abstract])) {
            return $abstract;
        }

        return $this->getAlias($this->aliases[$abstract]);
    }

谢谢你


如果在return $this->getAlias($this->aliases[$abstract]);中提供的参数与先前的参数不同,函数无法正常工作的问题可能是什么? - Prafulla Kumar Sahu
它应该循环。但是程序员需要防止它无限循环。 - DanMan
2个回答

5
你可能想了解有关递归函数的内容。

递归函数是调用自身的函数。

该函数接受一些参数并检查是否具有别名。如果有,它会再次调用自身并检查找到的别名是否具有别名等。


1
这些被称为递归函数... 这意味着,一个函数可以调用自身,直到达到期望输出的最终条件。
一个简单的例子是... 将2相乘,直到总和达到100。
public function multiplication($a, $sum = 0, $times = 0) {
  if($sum == 100) {
    return $times;
  }
  $sum += $a;
  $times++;
  return multiplication($a, $sum, $times);
}

echo multiplication(2);

输出将会是

50

在问题中编写的函数试图检查当前类是否设置了作为参数传递的所有抽象值。希望您现在清楚了这个概念。 :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接