如题in_array返回的值是1或空...存在是1.. 不存在是空...
可是我看手册上说:
bool in_array ( mixed $needle , array $haystack [, bool $strict ] )
在 haystack 中搜索 needle ,如果找到则返回 TRUE,否则返回 FALSE。 请问这是为什么?
我是在实现一个判断客户端是否是指定的IP范围内
当客户端的IP是存在于我指定数组内的IP的话..就能显示全部功能..
如果不是..则显示部分功能...
我现在只能这样判断了:
if(in_array($_SERVER["REMOTE_ADDR"],$ipArr,false)==1)//第三个参数是说不判断他们的类型

解决方案 »

  1.   

    if(in_array($_SERVER["REMOTE_ADDR"],$ipArr,false))
    这样判断就可以了
      

  2.   

    使用
    if(in_array($_SERVER["REMOTE_ADDR"],$ipArr))
      

  3.   

    当转换为 boolean 时,以下值被认为是 FALSE: 
    布尔值 FALSE
    整型值 0(零)
    浮点型值 0.0(零)
    空白字符串和字符串 "0"
    没有成员变量的数组
    没有单元的对象
    特殊类型NULL(包括尚未设定的变量)
    所有其它值都被认为是 TRUE(包括任何资源)。 
    警告
    -1 和其它非零值(不论正负)一样,被认为是 TRUE! 
      

  4.   

    你用var_dump把结果打印出来不就知道返回的是什么了,比较的时候会有类型转换的。