0

我的 php 在某处的 if 语句中一定是错误的。出于某种原因,它仅在数组中返回“购买”作为历史类型,即使原始数据向我显示。我做错了什么?

$history = $api->get_wallet_history('USD');

$i = 0;
while ($i <= 9):
$history_date = $history[result][$i][Date];
//$history_date->format("m-d-y");
//print_r($history_date);

$history_type = $history[result][$i][Type];
if($history_type = 'spent'):
    $history_type = 'Buy';
    elseif($history_type = 'earned'):
        $history_type = 'Sold';
    elseif ($history_type = 'fee'):
        $history_type = 'Fee';
    else:
        $history_type = 'Error';
endif;
//print_r($history_type);

$history_usd = $history[result][$i][Balance][value];
$history_btc = $history[result][$i][Trade][Amount][value];
$history_amt = $history[result][$i][Value][value];
echo '<tr><td>'.$history_type.'</td><td>'.$history_amt.'</td><td>'.$history_usd.'</td><td>'.$history_btc.'</td><td>'.$history_date.'</td></tr>';
$i++;
endwhile;
4

2 回答 2

2

$history_type = 'spent'一定是$history_type == 'spent'

分配总是返回分配值。$history_type = 'spent'返回 '​​spent',解释为true.

if必须看起来

if ($history_type == 'spent'):
    $history_type = 'Buy';
elseif ($history_type == 'earned'):
    $history_type = 'Sold';
elseif ($history_type == 'fee'):
    $history_type = 'Fee';
else:
    $history_type = 'Error';
endif;

赋值运算符,比较运算符

为避免出现此错误的可能性,您可以更改值和变量的位置。

'spent' = $history_type-- 从不工作 'spent' == $history_type-- 按预期工作

于 2013-11-15T01:33:18.003 回答
0

您在这里分配而不是比较:

 if ($history_type = 'spent'):

这就是为什么它总是具有“花费”的价值

于 2013-11-15T01:35:26.000 回答