Php 带有用户输入的Switch语句
作为一个新手,我不擅长编码 我正在尝试做一个switch语句,它将给用户他们输入到正确罗马数字中的数字(只有1-10之间的数字)Php 带有用户输入的Switch语句,php,switch-statement,Php,Switch Statement,作为一个新手,我不擅长编码 我正在尝试做一个switch语句,它将给用户他们输入到正确罗马数字中的数字(只有1-10之间的数字) 键入1-10之间的数字。 目前,这就是我所拥有的,但我不知道如何让switch语句使用用户提供的号码。有什么帮助吗 提前感谢。您可以使用以下解决方案来解决您的问题: $input = $_POST['num']; if($input){ switch($input) { .... } } 首先你要确保你有一个 注意我正在使用$\u
键入1-10之间的数字。
目前,这就是我所拥有的,但我不知道如何让switch语句使用用户提供的号码。有什么帮助吗
提前感谢。您可以使用以下解决方案来解决您的问题:
$input = $_POST['num'];
if($input){
switch($input) {
....
}
}
首先你要确保你有一个 注意我正在使用$\u POST['num']
$num = $_POST['num'] ?? 0;
现在你检查一下
switch($num){
case 1:
echo 'I';
break;
case 2:
echo 'II';
break;
...
...
我会做一些不同的事情,即使这样也不是最有效的转变
echo (([1=>'I', 2=>'II',3=>'III',....,9=>'IX'])[$_POST['num']]) ?? '';
isset($\u POST['submit'])
返回一个布尔值,它不是开关
语句所期望的1-10范围内的整数。您可能打算使用$\u POST['num']
// if the form has been submitted
if(isset($_POST['submit'])) {
$num = (int) $_POST['num'];
switch($num) {
case 1:
echo "I";
break;
case 2:
echo "II";
break;
case 3:
echo "III";
break;
case 4:
echo "IV";
break;
case 5:
echo "V";
break;
case 6:
echo "VI";
break;
case 7:
echo "VII";
break;
case 8:
echo "VIII";
break;
case 9:
echo "IX";
break;
case 10:
echo "X";
break;
default:
echo 'wrong number or you probably entered a number less than 1 or higher than 10';
}
}
数组是封装逻辑的一种更紧凑的方式,而不是一个长且可能容易出错的switch语句。每个数组索引映射到一个数字,如下所示:
<form action="#" method="post">
Type a number from 1-10. <input type="text" name="num">
<input type="submit" name="submit">
</form>
<?php
$numerals = ['', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X'];
if (isset($_POST['num'])) {
echo isset($numerals[$_POST['num']]) ? $numerals[$_POST['num']] : "error";
}
?>
键入1-10之间的数字。
用户将在其中输入数字的输入具有名称
属性'num'
,因此要获取用户输入的内容,您将使用$\u POST['num']
// if the form has been submitted
if(isset($_POST['submit'])) {
$num = (int) $_POST['num'];
switch($num) {
case 1:
echo "I";
break;
case 2:
echo "II";
break;
case 3:
echo "III";
break;
case 4:
echo "IV";
break;
case 5:
echo "V";
break;
case 6:
echo "VI";
break;
case 7:
echo "VII";
break;
case 8:
echo "VIII";
break;
case 9:
echo "IX";
break;
case 10:
echo "X";
break;
default:
echo 'wrong number or you probably entered a number less than 1 or higher than 10';
}
}
isset($\u POST['submit'])
。你想在你的开关之前测试它(虽然测试$\u POST['num']
会更有意义),然后使用开关($\u POST['num'])
$\u POST['num']
应该包含数字而不是$\u POST['submit']
,但是如果OP正在运行PHP
<7怎么办?空合并运算符
将无法识别,因为?
不是有效的语法。@这确实很遗憾,-非常感谢。这起了作用。我不知道伊塞特必须在转换之前。@CholoBoy很高兴我能帮助你。isset
功能主要用于检查表单提交情况。