是否可以在声明中做声明?

时间:2018-01-11 07:28:01

标签: php if-statement

所以我正在尝试做这样的事情

if($id == 1 || $id == 2 || $id == 5 || $id == 8) {
echo 'test';
} elseif($id == 6) {
echo 'test2';
} else {
echo 'error';
}

当通过post方法获得的id不同时,我可以显示特定的消息(在完成的版本中使用html等)。

编辑:问题是代码重复了两次。

我怎么能解决这个问题?

感谢所有帮助我的人!

3 个答案:

答案 0 :(得分:0)

正如我所看到你有超过3个id来比较这么简单解决方案是将所有id作为一个数组 并使用in_array

<?php

    $id = 3;
    $myid = array(1,2,5,8);

        if(in_array($id,$myid)) {

          echo 'test';

        } elseif($id == 6) {

           echo 'test2';

        } else {

          echo 'error';

        }

您也可以使用PHP Switch Statement

<?php

$id = 6;


switch ($id) {
    case 1:
    case 2:
    case 5:
    case 8:
        echo "Passed .!";
        break;
    case 6:
        echo "Passwd 2!";
        break;
    default:
        echo "Failed .!";
}

答案 1 :(得分:0)

使用in_array()

$arr = [1,2,5,8];
$id = 1;
if(in_array($id, $arr)) {
    echo 'test';
} elseif($id == 6) {
    echo 'test2';
} else {
    echo 'error';
}

https://3v4l.org/T5giX

答案 2 :(得分:0)

在一行中使用这个语句使用三元运算符。希望它能满足你。

echo ( ($id == 1 || $id == 2 || $id == 5 || $id == 8) ? "test" : (($id == 6) ? "test2" : "error"));