如何在 If else 语句 PHP 中设置多个条件


how to set multiple conditions in if else statement php

<html>
<head>
<title> GRADE DETAILS </title>
</head>
<body>
<?php
$myname=$_GET ['myname'];
$mygrade=$_GET ['mygrade'];
if(($myname=='@' or $myname=='!'))
{
    echo "Special character not allowed.";
}
else if($myname==" ")
{
    echo "Please enter your name";
}

else
{
    switch($mygrade)
{
case "";
echo "you did not enter grade";
break;
case A;
echo "Increment 30% of basic salary";
break;
case B;
echo "Increment 10% of basic salary";
break;
default;
echo"Wrong Grade";
break;
}
}
?>
</body>
</html>

我想在我的 if else 语句中设置多个条件。我尝试了很多方法,但仍然没有奏效...我希望有人可以帮助我..与我的开关盒无关,但问题仅在 IF ELSE..请帮忙。谢谢。

基本上没问题,但是您需要将"CASE"语句后面的分号替换为冒号,然后将文本字符串(A,B等)放入引号中:

switch($mygrade) {
    case "":
        echo "you did not enter grade";
    break;
    case "A":
        echo "Increment 30% of basic salary";
    break;
    case "B":
        echo "Increment 10% of basic salary";
    break;
    default:
        echo "Wrong Grade";
    break;
}

缺少一些引号的地方,AB被解释为常量

<?php
$myname= trim($_GET ['myname']);
$mygrade= trim($_GET ['mygrade']);
if(strstr('@',$myname) or strstr('!',$myname) )
{
    echo "Special character not allowed.";
}
else if(empty($myname))
{
    echo "Please enter your name";
}

else
{
    switch($mygrade)
{
case "":
echo "you did not enter grade";
break;
case 'A':
echo "Increment 30% of basic salary";
break;
case 'B':
echo "Increment 10% of basic salary";
break;
default:
echo"Wrong Grade";
break;
}
}
这是一个

普通的PHP吗?我在下面有我的答案。但是,我不建议你继续这样做。您可以搜索可以帮助您进行验证的其他类或框架。这可能也容易注射。

回答您的问题:(基本上)

$invalid = array("@", "!");
if (in_array($myname, $invalid)) {
    echo 'Special character not allowed.';
}
if (empty($myname)) {
    echo "Please enter your name";
}
if (!empty($mygrade)) {
    switch($mygrade) {
       case "":
        echo "you did not enter grade";
        break;
    case "A":
        echo "Increment 30% of basic salary";
        break;
    case "B":
        echo "Increment 10% of basic salary";
        break;
    default:
        echo "Wrong Grade";
        break;
    }
}
else {
    echo 'Grade was empty';
}