Возникают проблемы с возвратом значения bool для функции в php - PullRequest
0 голосов
/ 15 мая 2011

Я пытаюсь использовать оператор if для использования значения bool, и оно не работает. Вверху - мои функции, которыми я пользуюсь, а внизу - if if. Когда я изменяю условие if на false, я получаю результат, но мне нужны оба значения: true и false. Любые советы

      public function find($key)   {  
    $this->find_helper($key, $this->root);      
}

public function find_helper($key, $current){
    while ($current){
        if($current->data == $key){
            echo " current";
            return true;
        }
        else if ($key < $current->data){
            $current= $current->leftChild;
            //echo " left ";
            }
        else {
            $current=$current->rightChild;
            //echo " right ";
            }
    }
    return false;
}


      if($BST->find($randomNumber)){//how do I get this to return a true value?
        echo  " same ";
}

Ответы [ 2 ]

7 голосов
/ 15 мая 2011

Вы возвращаетесь с find_helper(), но не с find().Без return (см. Ниже) вызывается метод find_helper(), но все, что возвращает этот метод, равно , отброшено .Таким образом, ваш метод find() в итоге возвращает значение или (которое PHP в любом случае переводит в ноль).

public function find($key) {  
    return $this->find_helper($key, $this->root);      
}
0 голосов
/ 15 мая 2011

использовать троичный оператор

 public function find($key)   {  
     return ($this->find_helper($key, $this->root)) ? true : false;      
  }
...