Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 查看并更改什么触发if语句_Php_Variables_If Statement - Fatal编程技术网

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))

我是PHP新手,所以这可能是一个愚蠢的问题。我不知道该如何命名,也不知道你们是否可以做类似的事情,但我一直在想,我是否可以看到并更改什么变量触发“if”语句

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

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,最后的代码将非常有效,谢谢您在这方面的帮助!!:)