PHP没有正确检查多个项目

时间:2017-12-06 13:07:16

标签: php strpos

我通过api提取实时价格并检查CHANGEPCT24HOUR值。

如果值为负,我想要一个向下箭头,如果它是正数则会给出一个绿色向上箭头。

以下代码无法正常工作。 当前值为BTC:8.32& ETH:-2.86

代码:

      $json_string =    file_get_contents("https://myapi.com/?fsyms=BTC,ETH,DASH,LTC,NEO,XRP&tsyms=USD");
      $parsed_json = json_decode($json_string, true);
      $btcp = $parsed_json['DISPLAY']['BTC']['USD']['CHANGEPCT24HOUR'];
      $ethp = $parsed_json['DISPLAY']['ETH']['USD']['CHANGEPCT24HOUR'];
      if(strpos($btcp,'-') == FALSE){ 
         $btc = "<i class=\"fa fa-fw fa-arrow-up\" style=\"color:green\"></i>".$parsed_json['DISPLAY']['BTC']['USD']['CHANGEPCT24HOUR'];
         } else {
         $btc = "<i class=\"fa fa-fw fa-arrow-down\" style=\"color:red\"></i>".$parsed_json['DISPLAY']['BTC']['USD']['CHANGEPCT24HOUR'];
         }
      if(strpos($ethp,'-') == FALSE){ 
         $eth = "<i class=\"fa fa-fw fa-arrow-up\" style=\"color:green\"></i>".$parsed_json['DISPLAY']['ETH']['USD']['CHANGEPCT24HOUR'];
         } else {
         $eth = "<i class=\"fa fa-fw fa-arrow-down\" style=\"color:red\"></i>".$parsed_json['DISPLAY']['ETH']['USD']['CHANGEPCT24HOUR'];

         }
      $livechange = "BTC : ".$btc.'<br />';
      $livechange .= "ETH : ".$eth;
      echo $livechange;

它显示了两者的向上箭头。但是,如果我将$eth strpos检查更改为此      if(strpos($ethp,'-') == FALSE) 然后切换顺序或它周围的$eth工作正常。

我不知道为什么原始的strpos方法在第二次检查时无法正常工作。

1 个答案:

答案 0 :(得分:1)

您需要使用===而不是==,因为如果您查找的字符位于字符串的第一个位置,strpos将返回0。

所以在-50

strpos('-50', '-') == 0 == FALSE // This is true

strpos('-50', '-') === FALSE // This is false