php - 令人费解的 php 递归

标签 php recursion while-loop conditional-statements

我将此代码与 php 一起使用:

while (0 != $date1 || $this->counter < 5 ) {
    // if ($this->true_cahce_failure ) {
    $this->url= $this->adjust_url_with_www_add($this->url);
    // $this->counter=2;
    // }

    $this->cache_debug("Date".$date1." ".$this->url,"Recursion ".$this->counter);
    $date1 = $this->get_date();
    $this->counter++;
}
$this->cache_debug("Date: ".$date1." ".$this->url,"Loop Done ");

基本上循环应该继续,直到 $datenot 0 或者 counter 不大于 5。有时 date10 但有时没有。如果没有,它应该在 while 评估中返回,并停止迭代。但它并没有这样做,而是继续迭代。

它只在计数器达到 5 时停止。这是为什么?

最佳答案

我认为您想在您的条件中使用 && 而不是 ||

按照您编写的方式,如果其中一个条件为真,它将继续运行,因此只有当它们都为假时,它才会停止。

编辑:仔细阅读您的问题后,我认为您需要使用

while (0 == $date1 && $this->counter < 5 ) {

关于php - 令人费解的 php 递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13344602/

相关文章:

php - 使用 PHP 从 HTML 列表生成 XML

java - 捕获异常时不定式递归

c - 我应该使用什么循环以及如何使用?

c++ - 如何读取未知数量的输入?

c - 第二个输入 char* 造成无限循环

php - Drupal 7 - 以编程方式创建节点,将 youtube 嵌入到字段中

php - 如何使用javascript将相同的变量从php发送到两个不同的php页面

javascript - 使用 jQuery 从 Ajax 响应构建表行(不使用静态 json 数据)

c++ - 有哪些合理的方法可以改进递归问题的解决?

java - 需要有关 Java 中字符串递归的帮助