首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP-file_get_content:无法在单个if语句中检查两个file_get_contents

PHP-file_get_content:无法在单个if语句中检查两个file_get_contents
EN

Stack Overflow用户
提问于 2019-01-21 14:49:06
回答 1查看 60关注 0票数 0

我通过相同的if语句运行两个api调用,以确保它们都返回值。错误检查的一种形式。

它们都通过了测试,但是json_decode无法访问或解码第一个file_get_contents

代码语言:javascript
复制
    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];
}

以上返回:

代码语言:javascript
复制
[
 1,
 {
  "data": 
   {
   "base": "BTC",
   "currency": "USD",
   "amount": "3532.335"
   }
 }
]

当我在$json1中引用单个值时,它们返回null。

当手动将url输入到url中时,它们都返回适当的JSON。

每条if语句只能使用一个file_get_contents

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-21 15:08:34

请检查Operator Precedence&&的优先级较高,因此它首先执行get_file_contents,然后使用&&并返回到$exchangeRates。最后,$exchangeRates是布尔值。在这种情况下,您应该正确使用():

代码语言:javascript
复制
    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];
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54284734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档