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