Php 尝试捕获并打印到屏幕

Php 尝试捕获并打印到屏幕,php,try-catch,Php,Try Catch,我想做个测验 这是我正在使用的一个try-catch示例。我尝试创建的主要内容是一个在线测验,当单击提交按钮时,我希望结果打印到屏幕上 try-catch可以工作,但现在它毫无意义,因为它不需要用户交互。结果是硬编码的 这是我的html和TryCatch的一个例子,我到目前为止已经有了 我的问题是如何实现这一点 <p>Which Basketball team is known as the Hoosiers

我想做个测验

这是我正在使用的一个try-catch示例。我尝试创建的主要内容是一个在线测验,当单击提交按钮时,我希望结果打印到屏幕上

try-catch可以工作,但现在它毫无意义,因为它不需要用户交互。结果是硬编码的

这是我的html和TryCatch的一个例子,我到目前为止已经有了

我的问题是如何实现这一点

                <p>Which Basketball team is known as the Hoosiers

                    <select>
                        <option value="">--Select--</option>
                        <option value="IU">IU</option>
                        <option value="Kentucky">Kentucky</option>
                        <option value="Ohio State">Ohio State</option>
                        <option value="Connecticut">Conneticut</option>
                    </select> 

                </p>
                </br>
                 <input type="submit" id="submit" name="submit" value="submit"/>
                </form>

                                 <?php
        $quiz = 'IU';

        try { 

        //The answer is correct

        if ($quiz == 'IU') {
            echo 'Well Done!!!.';
                }else{
                    throw new Exception ('Not even close.');
        }

        //That is incorrect

                }catch (exception $wrg) {
            echo 'Error: ' .$wrg->getMessage();

        }

        ?>

我想你要问的问题是你如何阅读测验的结果。您可以通过全局$\u POST变量完成此操作,您需要像这样命名您的select,然后您可以通过$\u POST['answer']访问它以获取选择值。然后您可以比较它,您不应该在这里使用try-catch块的抛出异常,它并不是真正设计用于程序逻辑的。相反,在这种情况下,你应该尝试一个简单的if-else

if(array_key_exists('answer', $_POST){
    if ($_POST['answer'] == 'IU') {
        echo 'Well Done!!!.';
    } else {
        echo 'Not even close.';
    }
}

Try-catch用于捕获并以某种方式处理PHP编程错误,而不是用于简单的用户输入。如果你只使用if/else…@LightnessRacesinOrbit,你会感觉好多了。我不得不非常不同意你的看法。Try-catch语句用于捕捉意外结果,给您一个优雅爆发的机会。IE错误处理。我从未见过有人试图以这种方式使用它,海报应该使用switch语句或if-else语句。@LightnessRacesinOrbit-try-catch旨在尝试运行代码,然后捕获尝试时可能出现的任何错误。。。甚至PHP文档也在其示例中使用了这种类型的场景。所以,无论你是否想争论某件事是错误还是例外,这都无关紧要。Try/Catch设计用于捕获代码中未预料到的问题。在这个问题上使用它是错误的。顺便说一句,打电话给我那个小小的语法错误,真的吗?这不是个小气的地方。我相信有5万名代表的人应该知道这一点。谢谢@BenGriffiths,我正准备发布这一点。