PHP switch 不与整数切换
PHP switch not switching with integer
我有一个 HTML 表格和一些 PHP,但无论提交的案例如何,它总是回显“100 TEST”。默认情况下工作正常。
HTML:
<form class="page-search" action="page.php" method="post">
<input type="text" name="page" autofocus maxlength="3" placeholder="100" style="width: 50px;">
<input type="submit" style="visibility: hidden;">
</form>
PHP:
<?php
$pageid = isset($_POST['page']);
switch ($pageid) {
case '100':
echo '100 TEST';
break;
case '200':
echo '200 TEST';
break;
case '300':
echo '300 TEST';
break;
default:
echo 'DEFAULT';
break;
}
?>
我是不是漏掉了一些很明显的东西?我很自责,因为我需要问这个问题,但似乎无法弄清楚这个问题!
isset
Returns 如果 var 存在且值不是 NULL,则为 TRUE,否则为 FALSE。
将您的代码更改为此
<?php
if (isset($_POST['page'])) $pageid = $_POST['pageid'];
改变
$pageid = isset($_POST['page']);
到
$pageid = isset($_POST['page']) ? $_POST['page'] : 'default value if you need one';
由于代码正在检查 isset()
方法的结果,该方法将是 boolean
,但是 switch
对 $_POST['page']
值本身感兴趣。
正如我在评论中提到的,这里是示例代码的替代方案:
echo isset($_POST['page']) ? $_POST['page'] . ' TEST' : 'DEFAULT';
isset 将 return 布尔值。所以这里就成了问题。
你没有关闭你也关闭了开关的 bracis,检查了 isset 但没有为变量 $pageid 分配值
$pageid = isset($_POST['page']) ? $_POST['page'] : 0;
switch ($pageid) {
case '100':
echo '100 TEST';
break;
case '200':
echo '200 TEST';
break;
case '300':
echo '300 TEST';
break;
default:
echo 'DEFAULT';
break;
}
我有一个 HTML 表格和一些 PHP,但无论提交的案例如何,它总是回显“100 TEST”。默认情况下工作正常。
HTML:
<form class="page-search" action="page.php" method="post">
<input type="text" name="page" autofocus maxlength="3" placeholder="100" style="width: 50px;">
<input type="submit" style="visibility: hidden;">
</form>
PHP:
<?php
$pageid = isset($_POST['page']);
switch ($pageid) {
case '100':
echo '100 TEST';
break;
case '200':
echo '200 TEST';
break;
case '300':
echo '300 TEST';
break;
default:
echo 'DEFAULT';
break;
}
?>
我是不是漏掉了一些很明显的东西?我很自责,因为我需要问这个问题,但似乎无法弄清楚这个问题!
isset
Returns 如果 var 存在且值不是 NULL,则为 TRUE,否则为 FALSE。
将您的代码更改为此
<?php
if (isset($_POST['page'])) $pageid = $_POST['pageid'];
改变
$pageid = isset($_POST['page']);
到
$pageid = isset($_POST['page']) ? $_POST['page'] : 'default value if you need one';
由于代码正在检查 isset()
方法的结果,该方法将是 boolean
,但是 switch
对 $_POST['page']
值本身感兴趣。
正如我在评论中提到的,这里是示例代码的替代方案:
echo isset($_POST['page']) ? $_POST['page'] . ' TEST' : 'DEFAULT';
isset 将 return 布尔值。所以这里就成了问题。
你没有关闭你也关闭了开关的 bracis,检查了 isset 但没有为变量 $pageid 分配值
$pageid = isset($_POST['page']) ? $_POST['page'] : 0;
switch ($pageid) {
case '100':
echo '100 TEST';
break;
case '200':
echo '200 TEST';
break;
case '300':
echo '300 TEST';
break;
default:
echo 'DEFAULT';
break;
}