我正在尝试执行某些功能,但是,当我将$variable
的-ve值放入时,会得到白页结果。看起来此变量具有-ve值:$long_total_profit_loss = "-900";
$long_total_profit_loss = "-900";
$short_sell_total_profit_loss = "-600";
//CONCLUTION
if(($long_total_profit_loss > $short_sell_total_profit_loss) && ($long_total_profit_loss>0)){
echo "long has higher in profit";
}elseif (($long_total_profit_loss > $short_sell_total_profit_loss) && ($long_total_profit_loss < 0)){
echo "long has higher loss";
}elseif (($long_total_profit_loss < $short_sell_total_profit_loss) && ($long_total_profit_loss > 0)){
echo "short has higher in profit";
}
elseif (($long_total_profit_loss > $short_sell_total_profit_loss) && ($long_total_profit_loss < 0)){
echo "short has higher loss";
}
答案 0 :(得分:3)
我建议您以不同的方式构造您的条件(使用嵌套的if语句),这将使您有更好的概览和可读性,从而您不会忘记特殊情况。
$long_total_profit_loss = -900;
$short_sell_total_profit_loss = -600;
if($long_total_profit_loss > $short_sell_total_profit_loss) {
if($long_total_profit_loss > 0) {
echo "long has higher in profit";
}
else { // $long_total_profit_loss<0 or =0
echo "short has higher loss";
}
}
else { // $long_total_profit_loss < $short_sell_total_profit_loss or equal
if($short_sell_total_profit_loss > 0) {
echo "short has higher in profit";
}
else { // $short_sell_total_profit_loss<0 or =0
echo "long has higher loss";
}
}
// output: short has higher loss
您可以/应该扩展此范围以捕获当这些值彼此相等且等于0时的情况。
EDIT
交换了“ 短具有更高的损失”和“ 长具有更高的损失”的措辞,这得益于@Rafael
答案 1 :(得分:1)
欢迎。 主要的问题是,所有这些陈述都没有得出正确的结论。 (因此您将永远不会回声) 您错过了一个(-900小于-600):
elseif(($long_total_profit_loss < $short_sell_total_profit_loss) && ($long_total_profit_loss < 0)){
echo "your evalutation";
}
@Dale在评论中指出
使用字符串不是问题,php(正确或错误)将 为您转换
我仍然建议将这些变量声明为数字。
最后的代码应该是这样的:
<?php
$long_total_profit_loss = -900;
$short_sell_total_profit_loss = -600;
//CONCLUTION
if(($long_total_profit_loss > $short_sell_total_profit_loss) && ($long_total_profit_loss>0)){
echo "long has higher in profit";
}elseif (($long_total_profit_loss > $short_sell_total_profit_loss) && ($long_total_profit_loss < 0)){
echo "long has higher loss";
}elseif (($long_total_profit_loss < $short_sell_total_profit_loss) && ($long_total_profit_loss > 0)){
echo "short has higher in profit";
}elseif(($long_total_profit_loss < $short_sell_total_profit_loss) && ($long_total_profit_loss < 0)){
echo "your evalutation";
}
答案 2 :(得分:1)
据我所知,您没有考虑到几种情况。
<?php
$long_total_profit_loss = "-900";
$short_sell_total_profit_loss = "-600";
//CONCLUTION
if (($long_total_profit_loss > $short_sell_total_profit_loss) && ($long_total_profit_loss > 0)) {
echo "long has higher in profit";
} elseif (($long_total_profit_loss > $short_sell_total_profit_loss) && ($long_total_profit_loss < 0)) {
echo "long has higher loss";
} elseif (($long_total_profit_loss < $short_sell_total_profit_loss) && ($long_total_profit_loss > 0)) {
echo "short has higher in profit";
} elseif (($long_total_profit_loss > $short_sell_total_profit_loss) && ($long_total_profit_loss < 0)) {
echo "short has higher loss";
} else {
echo "Whoops I didn't think about this one!";
}
我只添加了一个额外的东西来捕捉您未考虑的任何东西,希望您可以接受并运行它
答案 3 :(得分:1)
我要写一个答案,因为我看到人们错过了所显示信息的重点。
$long_total_profit_loss = -900;
$short_sell_total_profit_loss = -600;
在这种情况下,$ long小于$ short,这意味着如果您想知道:
如果$ long的利润高于$ short,则$ long必须大于$ short(此陈述(是正确的)):
if ($long... > $short... && $long > 0) echo 'Long has higher profit than short
如果$ long的损失高于$ short,则$ long必须小于$ short(此陈述是错误的不正确的):
if ($long... < $short...) echo 'Long has higher loss than short
如果$ short的利润高于$ long,则$ short必须大于$ long(此陈述(是正确的)):
if ($long... < $short... && $short > 0) echo 'Short has higher profit than long
(最后),如果$ short的亏损高于$ long,则$ short必须小于$ long(此声明是正确的)。 / p>
if ($long... > $short...) echo 'Short has higher loss than long
主要是:
Short has higher loss than long
与代码中的Long has higher profit than short
等价。
它们两个都比较小于零,因此队列中的最后一个原因将永远不会被触发。要求获利的人应具有大于零的条件。
最后一句话,您是对的,我敢肯定,您知道-900小于-600,但是从您的第二句话来看,它看起来并不像。抱歉。 :)
[编辑]
@Jeff有一点,利润与大于零有关。
[Edit2]
Jeff保留了您在代码中的错误,尽管他的解决方案具有最佳的方法/可读性IMO。
我在这里固定,希望他会更新他的答案,以便您选择他的(不属于我)。
$long_total_profit_loss = -900;
$short_sell_total_profit_loss = -600;
if($long_total_profit_loss > $short_sell_total_profit_loss) {
if($long_total_profit_loss > 0) {
echo "long has higher in profit";
} else { // $long_total_profit_loss<0 or =0
echo "short has higher loss";
}
}
else { // $long_total_profit_loss < $short_sell_total_profit_loss or equal
if($short_sell_total_profit_loss > 0) {
echo "short has higher in profit";
} else { // $long_total_profit_loss<0 or =0
echo "long has higher loss";
}
}
在这里测试:https://3v4l.org/PY0P2