一个函数如何在PHP中调用自身?

时间:2016-09-10 06:14:29

标签: php laravel

我是Laravel和PHP的新手,所以我决定看一下核心代码并尝试阅读它,但当我到达这一部分时,我很困惑!这个功能如何运作? $this->getAlias($this->aliases[$abstract]);函数可以调用吗?它不会循环吗?

protected function getAlias($abstract)
    {
        if (! isset($this->aliases[$abstract])) {
            return $abstract;
        }

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

谢谢

2 个答案:

答案 0 :(得分:5)

您可能想了解recursive functions

  

递归函数是一个自我调用的函数

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

答案 1 :(得分:0)

这些被称为recursive functions ...这意味着,函数可以调用自身,直到达到预期输出的最终条件。

一个简单的例子是......乘以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

在问题中写的函数中,它试图检查是否为该当前类设置了作为参数传递的所有抽象值。

希望你现在清楚这个概念。 :)