首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"Elseif‘不起作用

"Elseif‘不起作用
EN

Stack Overflow用户
提问于 2016-09-19 07:52:21
回答 1查看 280关注 0票数 1

我做了一个基于几个"If“语句的php脚本。$depOption只能是bitcoinethereumliskEURUSD

if语句中的内容可以工作,但是elseif语句中的内容将$VAR返回为0。

我已经对这些语句中的代码进行了测试,它们可以正常工作。只有当我把它们放在我的其他I语句中时,它们才不起作用。

代码语言:javascript
复制
if ($depOption == "bitcoin" or "ethereum" or "lisk")
    {

        // Get information on altcoin values
        $request = 'https://api.coinmarketcap.com/v1/ticker/';
        $response  = file_get_contents($request);
        $data = json_decode($response, true);
        $price = null;
        foreach ($data as $item) {
            if ($item["id"] == "$depOption") {
                $VAL = $item["price_usd"];
                break;
            }
        }
    }
elseif ($depOption == "EUR")
    {
        // Get EUR exchange rate
        $eurrequest = 'http://api.fixer.io/latest';
        $eurresponse  = file_get_contents($eurrequest);
        $eurdata = json_decode($eurresponse, true);
        $VAL = $eurdata['rates']['USD'];
    }

elseif ($depOption == "USD")
    {
        $VAL = 1;
    }

else
    {
        die("Something went wrong.");
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-19 07:59:23

此行不正确:

代码语言:javascript
复制
if ($depOption == "bitcoin" or "ethereum" or "lisk")

它就像你写的那样被解析:

代码语言:javascript
复制
if (($depOption == "bitcoin") or "ethereum" or "lisk")

因为"ethereum"是真的,所以or表达式返回true,而不管$depOption的值是什么。正确的写法是:

代码语言:javascript
复制
if ($depOption == "bitcoin" or $depOption == "ethereum" or $depOption == "lisk")
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39563696

复制
相关文章

相似问题

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