我如何使用if / else / elseif ...在我的情况下,
因为当我尝试这些陈述时,
它说:语法错误,意外'如果' (T_IF)
我需要重复一次超过1次
$row = array();
$row[] = if($aRow['status'] == "deleted"){'code..'};
答案 0 :(得分:0)
您可以使用三元运算符来分配结果:
$row = array();
$row[] = $aRow['status'] == "deleted" ? 'code..' : null;
当您需要根据status
做更多事情时,最好的方法是为此引入一个功能:
function process($aRow) {
if ($aRow['status'] == "deleted") {
// do something when `deleted`
return 1;
} elseif ($aRow['status'] == "new") {
// do something when `new`
return 2;
} elseif ($aRow['status'] == "updated") {
// do something when `updated`
return 3;
} else {
// do something else
return 4;
}
}
$row = array();
$row[] = process($aRow);
答案 1 :(得分:0)
您有两种方法可以通过PHP实现这一点:
第一种方式
你可以使用if / else / elseif:
if ($status_var=="deleted")
{
//code .....
}
elseif ($status_var=="inserted")
{
//code .....
}
elseif ($status_var=="edited")
{
//code .....
}
esle
{
//code .....
}
第二种方式
您可以使用开关/案例结构:
switch ($status_var)
{
case "deleted":
//code .....
break;
case "inserted":
//code .....
break;
case "edited":
//code .....
break;
default:
//code .....
}
答案 2 :(得分:0)
这可能就是你所追求的。你可以遍历你从fetchAll()获得的结果数组中的每个记录,把你的if / elseif块放在这里,然后我假设你做了某种处理并将值保存到$ row数组?
$row = array();
$result = $sth->fetchAll();
foreach($result as $aRow){
if($aRow['status'] == "deleted"){
//do something
$row[] = //whatever
}
elseif($aRow['status'] == "something else"){
//do something else;
$row[] = //whatever else
}
}