我是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语句?
干杯
答案 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,
);
等...
希望这会有所帮助。