PHP字符串比较

时间:2013-09-30 15:25:02

标签: php string if-statement

我有一个变量,它的类型是字符串。 var_dump()显示:

var_dump()输出如下:

string(14)

//这是我的代码..

$game_cat = "Some text"; //某些文字实际上意味着它属于以下类别1,2,3,4 ......

if ( $game_cat === "Category 1" ) {
        $cid = 1;
}

if ( $game_cat === "Category 2" ) {
        $cid = 2;
}

if ( $game_cat === "Category 3" ) {
        $cid = 0;
}

else{
       $cid = 999999;
}

例如,当我将$game_cat更改为类别1时,如$game_cat = "Category 1"; $ cid必须为1,但输出为999999。

为什么?

4 个答案:

答案 0 :(得分:3)

使用elseif

if ( $game_cat === "Category 1" ) {
        $cid = 1;
}

elseif ( $game_cat === "Category 2" ) {
        $cid = 2;
}

elseif ( $game_cat === "Category 3" ) {
        $cid = 0;
}

else{
       $cid = 999999;
}

您当前的代码所做的事情:

if ( $game_cat === "Category 1" ) {
        $cid = 1; //cid is 1
}

if ( $game_cat === "Category 2" ) {
        $cid = 2; //skipped
}

if ( $game_cat === "Category 3" ) {
        $cid = 0; //skipped
}

else{
       $cid = 999999; //cid == 999999
}

答案 1 :(得分:1)

修改:工作演示

http://phpfiddle.org/main/code/g02-bjj

试试这个:

$game_cat = "Category 2";

if ( $game_cat === "Category 1" ) {
        $cid = 1;
}

elseif ( $game_cat === "Category 2" ) {
    $cid = 2;
}

elseif ( $game_cat === "Category 3" ) {
    $cid = 0;
}

else {
   $cid = 999999;
}
  1. 使用elseifhttp://php.net/manual/en/control-structures.elseif.php
  2. http://www.php.net/manual/en/language.operators.comparison.php
  3. 希望它有所帮助!

答案 2 :(得分:1)

你正在使用多个if语句,而这应该只是一个(else-if)。所以,首先你的变量将是1,但因为最后一个if语句会覆盖它,你会得到错误的答案。

做类似的事情:

if ( $game_cat === "Category 1" ) {
        $cid = 1;
}
elseif ( $game_cat === "Category 2" ) {
        $cid = 2;
}
elseif ( $game_cat === "Category 3" ) {
        $cid = 0;
}
else{
       $cid = 999999;
}

有关elseif的更多信息,请查看http://php.net/manual/en/control-structures.elseif.php:)

答案 3 :(得分:0)

由于上一个else。由于"Category 1" $cid1条件设置为if,因此它会被重置,因为它不是"Category 3"

在这种情况下,你应该使用“elseif”而不是连接许多“if”。