php - 在递归调用中使用先前调用的参数而不作为参数发送 - PHP

标签 php recursion

在递归调用之后(不将其作为参数发送),有没有办法使用方法的变量。

例如:

class Doc {

    public function readDoc($file, $recursion = false) {
        if ($recursion != false) {
            // DO SOMETHING;
        }
        $filename = $file."Some added text";
        $this->readDoc($filename, 1);
    }
}

这里,是否可以使用第一次调用时发送的$file的值(递归调用readDoc()函数时)。

最佳答案

您可以使用数组创建一个简单的堆栈,例如

  class Doc {
    private $stack = [];

    public function readDoc($file, $recursion=false) {
          if($recursion != false)    
              DO SOMETHING

          $this->stack[] = $file;    
          $filename = $file."Some added text";
          $this->readDoc($filename, 1);
    }
}

然后获取数组的第一个索引作为您的 $file 变量。

关于php - 在递归调用中使用先前调用的参数而不作为参数发送 - PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41483710/

相关文章:

javascript - 无法显示 angularJS 范围组件

php - PHP 中 eregi() 的良好替代方案

javascript - 使用递归嵌套父子

java - 递归自动换行算法

用于选择 MySQL 数据字段并返回 JSON 的 PHP 脚本

php - 如何从 fatal error 中获取调用堆栈?

php - 从 jQuery .ajax() 在 PHP 中获取 JSON

python - 使用 while 或 if 作为递归条件会导致不同的结果

ruby - 硬币变化递归哈希(解释)?

c - 在 C 中使用递归打印整数数组的反转