我有一个默认货币为美元。
下面的课程部分允许转换不同的货币,但我的问题是转换总是基于欧元作为默认值。
如果选择了如何更新函数以使用美元作为默认值?
谢谢
EUR = 1(默认)USD = 1.10 这种方法适用于任何货币
EUR = 0.9 USD = 1(默认) 这种方法不起作用,因为美元处于默认状态,结果总是如上。
注意: $currenciesAdmin->getAll()以所有带有代码(EUR)和标题(Euro)的货币为例。
EUR 的值始终为 null,因为该转换基于 EUR 作为默认值(有关值,请参阅链接 ecb.europa.eu)
public function getConvertCurrency()
{
$currenciesAdmin = new CurrenciesAdmin();
$XML = HTTP::getResponse([
'url' => 'https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml'
]);
if (empty($XML)) {
throw new \Exception('Can not load currency rates from the European Central Bank website');
}
$currencies = [];
foreach ($currenciesAdmin->getAll() as $c) {
$currencies[$c['id']] = null;
}
$XML = new \SimpleXMLElement($XML);
foreach ($XML->Cube->Cube->Cube as $rate) {
if (array_key_exists((string)$rate['currency'], $currencies)) {
$currencies[(string)$rate['currency']] = (float)$rate['rate'];
}
}
foreach ($currencies as $code => $value) {
if (!is_null($value)) {
try {
$this->db->save('currencies', [
'value' => $value,
'last_updated' => 'now()'
], [
'code' => $code
]);
} catch (\PDOException $e) {
trigger_error($e->getMessage());
}
}
}
}
森林海