【问题标题】:How can I check if a method returns true?如何检查方法是否返回 true?
【发布时间】:2018-09-29 17:33:08
【问题描述】:

我有这个方法供用户使用

public function isClosed(){
        $username = $this->user['username'];
        $query = mysqli_query($this->connection, "SELECT user_closed FROM users WHERE username='$username'");
        $row['user_closed'] = mysqli_fetch_array($query);
        if($row['user_closed'] == "no"){
            return false;
        }else{
            return true;
        }
    }

当我想显示用户的帖子时,在显示帖子的方法中,我有一个 while 循环,如果 user_closed 列显示“是”,则该循环应该中断。

public function loadPostsFriends(){
.
.
$added_by_obj = new User($this->connection, $added_by);
            if($added_by_obj->isClosed()){
                continue;
            }
.
.}

发生的情况是 while 循环像这样被破坏,尽管第一个方法返回该用户未关闭(在数据库中,user_closed 列填充了“no”。)这让我感到困惑,因为如果在数据库中它的“否”,if 语句说如果它的“否”,则返回 false。 continue功能应该不会被激活吧?

我知道这是一个新手问题,但我是 OOP 新手,感谢您的帮助。

【问题讨论】:

  • 你可能想要$row = mysqli_fetch_array($query) 在第 4 行...!?
  • 谢谢,解决了@deceze

标签: php oop if-statement methods logic


【解决方案1】:

$row = mysqli_fetch_array($query); 而不是这个$row['user_closed'] = mysqli_fetch_array($query);

【讨论】:

  • 谢谢,解决了。这是为什么?您不能为数组中的某个键分配值吗? @斯大林韦斯利
  • 您可以指定 .如果你分配将会像 $row['user_closed']['user_closed']
猜你喜欢
  • 2012-02-10
  • 2021-05-08
  • 2020-04-15
  • 1970-01-01
  • 1970-01-01
  • 2019-12-17
  • 2011-03-13
  • 2017-06-29
  • 1970-01-01
相关资源
最近更新 更多