Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查switch语句是否为true_Php_Switch Statement - Fatal编程技术网

Php 检查switch语句是否为true

Php 检查switch语句是否为true,php,switch-statement,Php,Switch Statement,我想检查我的switch语句是否正确,如果正确,我想用它做些什么。e、 g $a = trim($_POST['code']); switch ($a) { case "123"; break; case "467"; break; default : "incorrect"; } 然后我想做一个这样的if语句 if(switch == true) { $a = trim($_POST['code']); } e

我想检查我的switch语句是否正确,如果正确,我想用它做些什么。e、 g

$a = trim($_POST['code']);

    switch ($a) {
    case "123";
        break;
    case "467";
        break;
    default : "incorrect";
    }
然后我想做一个这样的if语句

if(switch == true) {
    $a = trim($_POST['code']);
}
else {
$Error ="incorrect code";
$hasError = true;
}
如果(开关==true)不正确。如何检查switch语句是否为真


谢谢您的时间。

案例关键字以
结尾:
(冒号)而不是
(分号)

我会选择完全相反的方向并使用:

有关的更多信息

但你应该使用:

$switch_true = in_array($a, array(123, 267));
Switch
并非真正用于此类用途。

Switch语句不是表达式,因此不能为“true”。您只能使用switch语句来处理副作用,例如分配变量

例如(修复语法错误)

尽管在实践中,我很少编写这样的代码——只需在开关中执行操作或直接使用if语句;使用一个函数,可能包含switch语句来编写更干净的代码

function isValid($secretCode) {
  switch ($secretCode) {
    case "123":
    case "467":
      return true;
    default:
      return false;
  }
}

if (isValid($a)) {
  # ..
}

您的代码应该如下所示:

    $a = trim($_POST['code']);

    switch ($a) {
    case "123":
        break;
    case "467":
        break;
    default : "incorrect";
    }

替换:(冒号)为;(分号)。

@ShankarDamodaran我猜是因为,虽然您认为语法不正确是正确的,但这并不能解决所问的整个问题。@ShankarDamodaran请看这里,我仍在使用
$\u POST['code']
?或者如果其中一个
案例'xy':
条件匹配?在您的回答中,我认为应该是默认值:$switch\u true=false@RaviRokkam+1。我还没有醒来只是想知道变量
$secretCode
是从哪里来的,还是它的意思是
$a
?@user3057514$a是函数外部的变量(例如
$a=trim($\u POST['code'])
,$secretCode是函数中的参数,最初具有作为参数提供的相同值$a(例如
isValid($a)
)。我更改了参数名称,以使作用域/变量之间的差异更加明显,但您可以将其称为其他名称(包括$a)。非常感谢,我没有这样看待它,而且在您的函数中,我没有看到任何情况。当找到正确的案例代码时,开关将如何停止?我被教导要永远break@user3057514由于
return
将立即退出函数(从而切换语句),因此没有理由还包括
break
@user2864740:因为不需要中断,也不需要使用
default
情况,只需以
return false结束函数即可。您可能一直在寻找的另一个函数被调用,它还返回
TRUE
/
FALSE
,有效值可以作为数组传递。
$switch_true = in_array($a, array(123, 267));
$valid = false; # default to false

switch ($a) {
    case "123":
    case "467":
        $valid = true; # yay, "valid!"
        break;
    default:
        break;
}

if ($valid === true) {
  # ..
}
function isValid($secretCode) {
  switch ($secretCode) {
    case "123":
    case "467":
      return true;
    default:
      return false;
  }
}

if (isValid($a)) {
  # ..
}
    $a = trim($_POST['code']);

    switch ($a) {
    case "123":
        break;
    case "467":
        break;
    default : "incorrect";
    }