查看并更改触发if语句的内容

时间:2016-03-03 14:30:37

标签: php variables if-statement

我是PHP的新手,所以这可能是一个愚蠢的问题。我不确定如何命名,或者你是否可以做类似的事情,但我一直想知道我是否可以看到并改变变量触发器" if"声明。

例如,如果我有这样的代码:

if ($a == 1 || $b == 1 || $c == 1) {
    //find which variable has triggered it and change only this variable to something else, (leave other untouched)
    $this = 2;
}

还是我必须为每个变量做一个单独的if语句?

干杯

1 个答案:

答案 0 :(得分:1)

您可以在PHP中使用isset()命令。

因为只有一个not null只是这样做:

if(isset($c)): echo 'C triggered this!'; endif;
if(isset($b)): echo 'B triggered this!'; endif;
//etc...

或使用switch方法:

switch($c){
   case 1: 'C triggered this';
   default: 'C did not trigger this';
}

由于您的评论,您可以使用嵌套的if语句:

if($c != 1){
    echo 'C is not set.';
} else if($b != 1){
    echo 'B is not set.';
}

确保全部设置并确定未设置的那些:

if(!isset($c)):
   echo 'C is not set.';
endif;
if(!isset($b)):
   echo 'b is not set.';
endif;

// etc...

不要做很多if语句的结构:

$check = array(
     'a' => 1,
     'b' => 2
     // ect...
)
$i = 0;
while($i != count($check)){
   if(!isset($check[$i])):
      $check[$i] = 2;
      $i++;
   endif;
endwhile;

设置数组可以这样做:

// your code, when you want to add to the array
// a =1, b =2 etc... (so ensure your functions run in chronological order

array_push($check, 1);

然后你的数组将如下所示:

$check = array (
    1 => 1,
    2 => 1,
); 

等...

希望这会有所帮助。