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

$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

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