可能重复:
echo inside if loop
我试图编码交易系统,我有一个进入和退出策略列表。为了减少代码中的行数,我计划将所有策略放入每个入口和出口的数组中。我的数组是这样的
$enter_strats = array(
array('name'=>"macd",'strat'=>"/$divergence[/$key]>0.1;"),
);
我在上面的数组中包含了条件语句。 当我通过日常价格循环时,如果它们是真的,我必须检查每个进入策略。我的if语句是这样的
foreach($divergence as $key=>$value)
{
if($trade ==0)
{
foreach($enter_strats as $k =>$v)
{
$strat = $v['strat'];
$strat = str_replace("#","$",$strat);
eval("\$strat = \"$strat\";");
if ($strat)
{
$trade =1;
$book->save($key,$close[$key],$v['name']);
}
}
}
}
问题因为它始终是一个字符串,总是将它评估为true。我试图再把一个eval放进去,但它没用。
请帮助解决这个问题,这是非常必要的。非常感谢。
答案 0 :(得分:0)
那是因为你试图减少代码中的行数。
一旦你明白了,你的代码就可以了。
'strat'应该只包含数据。例如,运营商和号码。 在字符串中保留变量名称毫无意义。 特别是如果你已经有了这个变量。 您的代码中已经有$ divergence [$ key]。
所以,'strat'应该只是array('>',0.1)