如果$commentpointsoff
大于1,如何使变量$commentpoints
等于$commentpoints
,如果$commentpoints
小于零,如何变为1?
答案 0 :(得分:2)
$commentpoints = ...;
$commentpointsoff = ...;
if ($commentpoints > 1) {
$commentpointsoff = $commentpoints;
} else if ($commentpoints < 0) {
$commentpointsoff = 1
}
答案 1 :(得分:1)
在问题中,我们被告知如果数字大于1则使用数字,如果数字小于零则使用数字。如果数字为零,我们不知道该怎么办。在第一个答案中,我假设零是可接受的数字。
传统的if-else
语句会很好用,但我想我会提供一个使用三元运算符的例子。它可能看起来有些令人生畏,但是当你理解语法时它会变得非常有吸引力:
$commentPoints = -12;
$commentPointsOff = ( $commentPoints > 1 )
? $commentPoints
: ( ( $commentPoints < 0 ) ? 1 : 0 );
echo $commentPointsOff; // 1, because -12 is less than zero
一个积极的例子:
$commentPoints = 5;
$commentPointsOff = ( $commentPoints > 1 )
? $commentPoints
: ( ( $commentPoints < 0 ) ? 1 : 0 ) ;
echo $commentPointsOff; // 5, because 5 is greater than 1
如果这是您第一次使用三元运算符,请让我提供速成课程。它本质上是一个简化的if-else
语句:
$var = (condition) ? true : false ;
如果我们的条件评估为true
,则返回?
之后的任何内容。如果条件评估为false
,我们将返回:
后的任何内容。在上面的解决方案中,我正在嵌套此运算符,如果条件为假,则返回另一个三元运算。
我在这里假设0是可接受的数字。如果不是,并且数字必须至少为1,或者正数较大,则可以使用更简单的版本:
$commentPointsOff = ( $commentPoints <= 0 ) ? 1 : $commentPoints ;
因此,如果$commentPoints
小于或等于0,则$commentPointsOff
会收到1
的值。否则,它会获得更大的正值。
答案 2 :(得分:1)
使用三元运算符:
$commentpointsoff = $commentpoints > 1 ? $commentpoints : 1;
?
之前的子句被评估为布尔值。如果true
,冒号前的子句被赋值给变量; if false
,冒号后的子句。
另见http://php.net/manual/en/language.operators.comparison.php
答案 3 :(得分:1)
如果零在不可接受的数字范围内,请使用:
$commentPointsOff = max(1, $commentPoints);
如果零可以接受,请使用此
$commentPointsOff = max(0, $commentPoints);