如果语句因太多条件而中断

时间:2019-04-09 21:32:50

标签: php conditional

我有一个if语句

databaseReference.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            cCESnapshot = dataSnapshot.child(uid).child("currChallenges").child(challengeList.get(position));

    Intent intent = new Intent();
    intent.setClass(this, ChallengeView.class);
    intent.putExtra("snapshot", cCESnapshot.toString());
    intent.putExtra("name", challengeList.get(position));
    startActivity(intent);
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });

但是由于条件的数量,if语句似乎失败了(例如,它总是执行某些操作,而不仅仅是针对指定的ID)。我可以删除其中的一些,并且可以正常工作。我该如何解决?

2 个答案:

答案 0 :(得分:3)

试试看,in_array非常适合这种情况:

import glob
import re
from html.parser import HTMLParser

wordDic = {}
counter = 1

class MyParse(HTMLParser):
    def handle_data(self, data):
        global wordDic
        global counter
        if self.currentTag == 'script' or self.currentTag == 'style':
            return
        if len(val) == 0 or val == '$$$': # $$$ is a custom name that I want to keep
            return
        wordDic[val] = counter
        counter = counter + 1
        # Now is there a way for me to modify the html file after this in this method?

此外,您的代码中缺少'='。

答案 1 :(得分:0)

您有错字:

... || $id = '4571' ) ...

正在将'4571'的值分配给$id。您必须使用比较运算符:

... || $id == '4571' ) ...

这就是为什么我喜欢使用in_array

$availableIds = ['2781', '1947', '516', '3200', '237', '3207', '3205', '2647', '516', '4571'];

if(in_array($id, $availableIds)) {
...
}