Php 查看并更改什么触发if语句
我是PHP新手,所以这可能是一个愚蠢的问题。我不知道该如何命名,也不知道你们是否可以做类似的事情,但我一直在想,我是否可以看到并更改什么变量触发“if”语句 例如,如果我有这样的代码:Php 查看并更改什么触发if语句,php,variables,if-statement,Php,Variables,If Statement,我是PHP新手,所以这可能是一个愚蠢的问题。我不知道该如何命名,也不知道你们是否可以做类似的事情,但我一直在想,我是否可以看到并更改什么变量触发“if”语句 例如,如果我有这样的代码: if($a==1 | |$b==1 | |$c==1){ //找到触发它的变量,并仅将此变量更改为其他变量(保持其他变量不变) $this=2; } 或者我必须为每个变量执行单独的if语句吗 Cheers您可以在PHP中使用isset()命令 由于只有一个始终为非空,请执行以下操作: if(isset($c))
if($a==1 | |$b==1 | |$c==1){
//找到触发它的变量,并仅将此变量更改为其他变量(保持其他变量不变)
$this=2;
}
或者我必须为每个变量执行单独的if语句吗
Cheers您可以在PHP中使用
isset()
命令
由于只有一个始终为非空
,请执行以下操作:
if(isset($c)): echo 'C triggered this!'; endif;
if(isset($b)): echo 'B triggered this!'; endif;
//etc...
或者使用开关
方法:
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.';
}
$check = array(
'a' => 1,
'b' => 2
// ect...
)
$i = 0;
while($i != count($check)){
if(!isset($check[$i])):
$check[$i] = 2;
$i++;
endif;
endwhile;
为确保设置了所有选项,并确定未设置的选项:
if(!isset($c)):
echo 'C is not set.';
endif;
if(!isset($b)):
echo 'b is not set.';
endif;
// etc...
结构不执行大量if语句:
if($c != 1){
echo 'C is not set.';
} else if($b != 1){
echo 'B is not set.';
}
$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,
);
那么您的阵列将如下所示:
// 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,
);
等等
希望这能有所帮助。如果有多个变量触发if语句,您希望发生什么?@MarkBaker我必须将触发该语句的所有变量都更改为“2”“那么你真的需要为每一个单独的if语句,因为它们实际上都在做不同的事情。。。。如果您使用的数组有三个条目,那么这将非常容易。注意:您意识到,
$this
是专门为OOP保留的,并且将抛出致命错误:无法重新分配$this…
。如果这就是你现在正在尝试使用的,那么这就是失败@托马斯戈林斯基对不起,我可能没有提供足够的信息。这个函数前面有一段代码,它定义了所有变量。那么假设我必须检查其中一个变量==1。如果其中一个变量不存在,那么我必须改变它。因此isset()不起作用,因为所有变量实际上都已设置。如果其中两个变量为1,这是否也起作用?或者它只会对触发它的第一个变量运行它?所以你想检查每个变量是否都已设置?基本上我想检查每个变量是否它们==1?如果它们中有任何一个是,那么将它们更改为2ok,最后的代码将非常有效,谢谢您在这方面的帮助!!:)