php问题strpos($goods_attr,'VIP套餐') !== false)不同环境下结果不同. - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
barb
V2EX    程序员

php问题strpos($goods_attr,'VIP套餐') !== false)不同环境下结果不同.

  •  
  •   barb 2013-12-28 18:07:10 +08:00 6868 次点击
    这是一个创建于 4388 天前的主题,其中的信息可能已经有所发展或是发生改变。
    $rrrr=array();
    if(strpos($rrrr,'VIP套餐') !== false){
    echo 'aaa';
    }else{
    echo 'bbb';
    }
    同一套代码,一个出来aaa,一个出来bbb
    搞了一下午没发现原因
    13 条回复    1970-01-01 08:00:00 +08:00
    lizheming
        1
    lizheming  
       2013-12-28 18:13:53 +08:00
    strpos接受的第一个参数不是string么..能用array?以及不等于不是 != 么?
    txlty
        2
    txlty  
       2013-12-28 18:17:14 +08:00
    !==是“不全等”没错。
    参数确实有问题。根据你的代码推测,应该用 in_array('VIP套餐',$rrrr) 吧?
    lizheming
        3
    lizheming  
       2013-12-28 18:21:38 +08:00
    @txtly 嗯,学习到了..还有不全等一说啊0_0...
    master
        4
    master  
       2013-12-28 18:23:31 +08:00
    确实得要 !== 的,这个地方没错。

    第一个参数确实不应该是array,而且文档中的Notes也有用户指出第一个参数传array的时候会出现意料之外的结果
    http://www.php.net/manual/en/function.strpos.php

    最后同楼上,如果需要在数组中进行查找的的话,用的不是strpos而是in_array
    http://www.php.net/in_array
    Sunyanzi
        5
    Sunyanzi  
       2013-12-28 18:46:22 +08:00   2
    @lizheming 二爷你这是在卖萌么 ... 怎么可能会不知道全等和不全等啦 ...

    关于 LZ 的问题 ... 代码本身存在的错误楼上说了不少我就不赘述了 ...

    我单纯说一下为什么这段不正确的代码会产生两种不同的结果 ...

    这里要以 php 5.3 为分界线 ... 在 php 5.3 之前的任何一个版本 ...

    如果你给一个字符串参数传递数组的话会触发一个 Notice 级的 Array to string conversion ...

    然后是正常的空字符串查找 ... 返回 false ... 你的代码输出 bbb ...

    5.3 之后这种不严谨的行为被修正了 ... 同样的代码会触发一个 type mismatch 的 warning ...

    具体描述大概类似这样 ... strpos() expects parameter 1 to be string, array given in file ...

    这时函数无法正常执行 ... 返回值是 null ... 你的代码输出 aaa ...

    所以我们得到结论 ... 造成这个问题的根本原因是你的两个环境 php 版本不同 ...

    输出 bbb 的 php 版本一定低于输出 aaa 的 php 版本 ...

    另外提供一个建议 ... 在开发的时候保持 error_reporting 开启 ...

    这样的话造成这个区别的原因一眼就能看出来 ... 根本不用浪费一个下午 ...
    lizheming
        6
    lizheming  
       2014-01-03 20:49:52 +08:00
    @Sunyanzi -_-!惊现孙大大的回复,好神奇..话说我是真的不知道不全等这个概念的,因为之前都没用过..不过现在直到了QwQ..我真的不是恶意卖萌啊....
    以及v2ex的提醒真是好bug,明明6天之前的回复结果今天因为另外一条回复提醒才被激发,让我错过了即时和孙大大聊天的几乎该当何罪!!!
    最后,孙大大不去sf玩了么QAQ,感觉大大好久没去了啊。
    Sunyanzi
        7
    Sunyanzi  
       2014-01-05 13:25:20 +08:00
    @lizheming 好吧 ... 那就当做不经意间学到了新知识好啦 ...

    SF 还是有去看啦 ... 但近来都没发现想要回答的问题的说 ...

    以及最近的回答质量都不错 ... 偷偷的看着大家百花齐放也是很有趣的事情 ...

    另外 ... 从我的直觉上讲 P 酱似乎是个萌萌的姑娘 ... 要好好跟她发展呀!
    lizheming
        8
    lizheming  
       2014-01-05 18:55:31 +08:00
    @Sunyanzi =。=!吓尿...sf上每一个剧情发展都被大大观察到了..好腻害T_T... 话说做到这种程度已经不只是“有去看”这么简单了吧=。=
    以及大大你的直觉杯具了,P酱意外的是个男的,而且还结婚了...最重要的是刚有娃娃了...发展个毛线啊...摔!!T_T... 不过我还是勾搭成功了 =w=
    Sunyanzi
        9
    Sunyanzi  
       2014-01-05 19:14:07 +08:00
    @lizheming 什!!么!!!!我!!便!!是!!不!!相!!信!!了!!口!!牙!!

    说是可爱的男孩纸我也就信了 ... 这么萌断然不可能是一个有娃娃的大叔啊啊啊啊啊啊啊啊啊啊啊!!

    妈蛋 ... 我的世界观要崩坏了么 ... 怎么可能会有男人比我还萌的!!

    不 ... 不是这样的 ... 在三次元亲眼见到 P 酱本人之前不要相信这些奇怪的事情!!
    lizheming
        10
    lizheming  
       2014-01-05 19:36:11 +08:00
    @Sunyanzi 大叔也有春天好么,大大不要这么歧视大叔哇o(□)o.. P酱是萌物啦但是断然超越不了大大啊..您是属于傲娇萌啊,顶级萌属性啊有么有!!!!!
    三次元..唔..我只有P酱萌崽照片一枚..他本人的只能靠大大你自己去发觉了..加油!大大!!啊..忘了说了,求到时候发一份给我QwQ...
    perichr
        11
    perichr  
       2014-01-05 23:45:00 +08:00
    咳咳,求助(严肃地):请问这种时候我该如何吐槽?
    Sunyanzi
        12
    Sunyanzi  
       2014-01-07 18:31:33 +08:00
    @perichr P 酱!!!(抱大腿
    perichr
       13
    perichr  
       2014-01-10 00:43:05 +08:00
    @Sunyanzi 孙大大你好,向你学习口牙~
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     766 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 21:18 PVG 05:18 LAX 13:18 JFK 16:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86