如何在函数中检索mysqli变量


How to retrieve a mysqli variable in a function

在函数中,我想使用if语句查找mysqli bind_result()变量if($qandaReplyType == 'Single'){,但在尝试此操作时,我得到了一个未定义的变量。我看了一些SO示例,但我不理解如何正确地实现它。因此,我的问题是,有人能提供一个代码片段,以便能够修复错误,也让我了解如何在函数中检索mysqli变量以供将来使用,并让我充分理解应该如何编写它。

代码:

$qandaquery = "SELECT q.QuestionId ReplyType
                            FROM QuestionId q
                            INNER JOIN Reply r ON q.ReplyId = r.ReplyId
        ...
            $qandaqrystmt->bind_result($qandaQuestionId,$qandaReplyType);
            $arrReplyType = array();

            while ($qandaqrystmt->fetch()) {
            $arrReplyType[ $qandaQuestionId ] = $qandaReplyType;
          }
            $qandaqrystmt->close();

        function ExpandOptionType($option) { 
        ...
             foreach($options as $indivOption) {
                 if($qandaReplyType == 'Single'){
        ...
                 }
                 else if ($qandaReplyType == 'Multiple'){
        ...
             }
          }
        }

尝试:

var $reply;
function ExpandOptionType($qandaReplyType) { 
    $this->reply = $qandaReplyType; 

         if($qandaReplyType == 'Single'){
...     
}
 }else if($qandaReplyType == 'Multiple'){
...     }
}
}

我上次使用mysqli已经很久了,但我会尽力帮助你。如果你在一个脚本、一个类或多个类中,那么从你发布的代码来看真的很难理解。。

如果你在课堂上,不要忘记使用$this。bind意味着您传递变量指针/引用,根据自己的喜好调用它,而不是值,因此在退出循环的地方,指针被设置为空位置。特别是在结束发言之后。

只有当您想将结果传递给一个函数或更通用的代码块时,才应该使用变量绑定,该代码块将从收到的值开始计算新值(是否返回新值无关紧要)。在这种情况下,我真的邀请您直接处理绑定的结果,否则您应该通过值而不是引用来传递它们。

希望得到帮助。

Marco

以下是如何使用$this将变量从一个方法传递到另一个方法。

class database {
     function do_query($id) {
          $result = db("SELECT * FROM tbl WHERE id=?", $id);
          $this->shared_result[] = $result["column"];
        # ^^^^^^^
     }

     function expand_evil($options) {
         foreach ($options as $whatever) {
             if ("Unicorn" == $this->shared_result) {
                            # ^^^^^^^
                ...
             }
         }
     }
}

评论将不予回复。教程确实存在。