一个不按常理出牌的php函数...

17-10-16 18:04 字数 321 阅读 3421 已编辑
$map = [    
    '360' => '360',    
    'baidu' => 'baidu',    
    'google' => 'google',    
];    

$url = 'https://www.google.com';    
foreach ($map as $key => $value) {    
    if (strpos($url, $key) !== false) {    
        echo $value;    
        break;    
    }    
}    

看上面这段代码你感觉应该输出什么?是不是google

但是结果却是360? are you kidding me ?

d576cc16a9f737cba113f2494b67b8ba.jpg

为什么呢?

原因是 foreach第一次时第一个key'360'会被当成int的360
而当strpos的第二个参数是int时,它将被转换为整型并被视为字符的顺序值。
chr(360) = 'h'

so,输入出360

0人点赞>
关注 收藏 改进 举报
1 条评论
排序方式 时间 投票
叶秋

你不说我还真不知道\'360\'会被当成360

请登录后发表评论
站长 @ 十七度
文章
384
粉丝
23
喜欢
195
收藏
31
排名 : 1
访问 : 145.24万
私信