PHP-file_get_contents:无法在单个 if 语句中检查两个 file_get_contents
PHP-file_get_contents: Unable to check two file_get_contents in a single if statement
我 运行 两个 api
调用通过相同的 if 语句来确保它们都是 return 值。一种错误检查形式。
他们都通过了测试,但是第一个 file_get_contents
无法被 json_decode
访问或解码。
if (
$exchangeRates = (file_get_contents('https://api.coinbase.com/v2/exchange-rates'))
&&
$data = (file_get_contents('https://api.coinbase.com/v2/prices/spot?currency=USD'))
){
$json1 = json_decode($exchangeRates, true);
$json2 = json_decode($data, true);
return [$json1, $json2];
}
以上returns:
[
1,
{
"data":
{
"base": "BTC",
"currency": "USD",
"amount": "3532.335"
}
}
]
当我在 $json1
中引用单个值时,它们 return 为空。
当 url 手动输入 url 时,它们都会 return 适当的 JSON。
每个 if 语句只能使用一个 file_get_contents
吗?
请检查 Operator Precedence,&&
优先级较高,因此它首先执行 get_file_contents
,然后使用 &&
和 returns 到 $exchangeRates。最后,$exchangeRates 是布尔值。在这种情况下你应该正确使用 ():
if (
($exchangeRates = file_get_contents('https://api.coinbase.com/v2/exchange-rates'))
&&
($data = file_get_contents('https://api.coinbase.com/v2/prices/spot?currency=USD'))
) {
$json1 = json_decode($exchangeRates, true);
$json2 = json_decode($data, true);
return [$json1, $json2];
}
我 运行 两个 api
调用通过相同的 if 语句来确保它们都是 return 值。一种错误检查形式。
他们都通过了测试,但是第一个 file_get_contents
无法被 json_decode
访问或解码。
if (
$exchangeRates = (file_get_contents('https://api.coinbase.com/v2/exchange-rates'))
&&
$data = (file_get_contents('https://api.coinbase.com/v2/prices/spot?currency=USD'))
){
$json1 = json_decode($exchangeRates, true);
$json2 = json_decode($data, true);
return [$json1, $json2];
}
以上returns:
[
1,
{
"data":
{
"base": "BTC",
"currency": "USD",
"amount": "3532.335"
}
}
]
当我在 $json1
中引用单个值时,它们 return 为空。
当 url 手动输入 url 时,它们都会 return 适当的 JSON。
每个 if 语句只能使用一个 file_get_contents
吗?
请检查 Operator Precedence,&&
优先级较高,因此它首先执行 get_file_contents
,然后使用 &&
和 returns 到 $exchangeRates。最后,$exchangeRates 是布尔值。在这种情况下你应该正确使用 ():
if (
($exchangeRates = file_get_contents('https://api.coinbase.com/v2/exchange-rates'))
&&
($data = file_get_contents('https://api.coinbase.com/v2/prices/spot?currency=USD'))
) {
$json1 = json_decode($exchangeRates, true);
$json2 = json_decode($data, true);
return [$json1, $json2];
}