如何在PHP中有条件地分配对象



我是PHP新手。我有一个用PHP编写的简单的API,它接收JSON格式的数据。我正在将JSON转换为PHP数组并对其进行解析:

$obj = json_decode($json,true);
$demircap = $obj['demircap'];
$disuzun1 = $obj['disuzun1'];
$boy = $obj['boy'];
$demiradet = $obj['demiradet'];

我想在这里定义一个新的空对象($disadet(,并设置$demiradet对象的条件状态。如果它有一个特殊的String值,我想给我的新对象$disadet作为$demiradet的双值,这样如果$disuzun1 == 'a'$disadet == $demiradet*2

这是我的代码:

if ($disuzun1 == 'a' || $disuzun1 == 'b' || $disuzun1 == 'c'){
$disadet == 2*$demiradet;
}else:
$disadet == $demiradet;

如何使用PHP进行条件格式化?

谢谢。

您有一些逻辑错误,问题是您的代码"编译";如在";在语法上是正确的";但这肯定不是你想要做的。

  • ==是一个比较运算符,您希望使用赋值运算符=
  • :用于python代码块,在php中,您希望使用大括号{ ... }来定义代码块(例如else代码块(

所以你的代码应该是:

if ($disuzun1 == 'a' || $disuzun1 == 'b' || $disuzun1 == 'c'){ 
$disadet = 2 * $demiradet;
} else {
$disadet = $demiradet;
}

我实际上会把它写成:

$disadet = $demiradet; // assign the default value (no else required)
if ($disuzun1 == 'a' || $disuzun1 == 'b' || $disuzun1 == 'c'){ 
$disadet = 2 * $demiradet;
}

或者,包括Ivan86的回答,做容易维护的"处于阵列"中;查找:

$disadet = $demiradet; // assign the default value (no else required)
if (in_array($disuzun1, ['a', 'b', 'c'])){ 
$disadet = 2 * $demiradet;
}

您可以这样简化代码:

if (in_array($disuzun1, ['a', 'b', 'c'])) {
$disadet = 2*$demiradet;
} else {
$disadet = $demiradet;
}

此外,在为变量赋值时,应使用赋值运算符=,而不是比较运算符==

最新更新