从方法php返回值

时间:2015-07-04 22:16:25

标签: php oop return-value

我无法从班级方法中返回值,有人能解释我做错了什么吗?

这是名为Tree的类的一部分:

  public function findNode($id, $node = NULL){
    if($node == NULL) $node = $this->root;
    if($node->tid == $id){
      return $node;
    }
    else{
      foreach ($node->children as $child) {
        $this->findNode($id, $child);
      }
    }
  }

`

然后我称之为

    $tree = new Tree($t);
    $a = $tree->findNode(55);

调试它我看到$ node在返回之前有一个值,但$ a总是为空(在正常的过程代码中,这在类范围之外调用)

任何人都可以给我一些指示吗?

由于

编辑: 这是返回之前$ node的内容,以及我期望在$ a中看到的内容:

(Object) Node
  parentNode (Object) Node
  text (String, 14 characters ) retransmission
  depth (Integer) 3
  children (Array, 0 elements)
  tid (String, 2 characters ) 55

1 个答案:

答案 0 :(得分:0)

当它以递归方式调用函数时,它将返回到foreach块,它将恢复其操作。

尝试捕获foreach中的节点,并在继续之前检查它是否为null。