这是一个正确的条件?

这个问题在这里已经有了答案:

  • 如何检查数组值是否存在? 12个答案
  • 我如何检查数组是否包含在PHP中的特定值? 8个答案
  • 如何检查数组是否包含JavaScript中的对象? 40个答案
  • 检查对象是否是数组? 38个答案

  • 你需要完成所有的比较,像这样:

    if($_SERVER['REQUEST_URI'] == 'index' || $_SERVER['REQUEST_URI'] == 'post' || $_SERVER['REQUEST_URI'] == 'about'){
      // why this not work for me?
    }
    

    因为,你现在正在做的是比较$_SERVER["REQUEST_URI"]true

    var_dump("hello" || "index"); // bool(true)
    

    所以比较总是如此,因为你只用了两个等号,这是一个宽松的比较。 如果你使用=== ,结果将是错误的,因为一个stringboolean类型不同。

    另一种方法是使用数组和in_array() ,它将检查值是否在数组的值中:

    $values = ["index", "post", "about"];
    if (in_array($_SERVER["REQUEST_URI"], $values)) {
    

    在JS中,你实际上是这样做的:

    if (miString == 'hello') {
    

    也就是说,逻辑OR运算符会给你第一个真值,在这种情况下,这个真值是'hello' ,所以只用于比较。

    JS没有多个比较的运算符缩写。 您可以使用多个==操作,一个switch语句或一些搜索集合中项目的构造。


    你会想要尝试这样的事情:

    var miString = 'hello'; 
    if(miString == 'hello' || miString == 'hola' || miString == 'ciao' || miString == 'merhaba'){
     alert('Welcome');
    }
    
    链接地址: http://www.djcxy.com/p/27585.html

    上一篇: is this a correct conditional?

    下一篇: Which is a better way to know the type of a variable in Java Script