我有一个变量,它的类型是字符串。 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。
为什么?
答案 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;
}
答案 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"
$cid
在1
条件设置为if
,因此它会被重置,因为它不是"Category 3"
。
在这种情况下,你应该使用“elseif”而不是连接许多“if”。