话不多说,先来上一段代码大家看看。


$zhu= [    
    '360' => '360',    
    'taobao' => 'taobao',    
    'google' => 'google',    
];    

$url = 'https://www.google.com';    
foreach ($zhuas $key => $value) {    
    if (strpos($url, $key) !== false) {    
        echo $value;    
        break;    
    }    
}    
如上,大家觉得输出的会是啥呢?google么?



然而去跑一遍后你就会懵逼了。

输出的是:

360


\\\\\\\


这是为嘛呢?


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

因此,输出的就是360了。是不是一个套路很深滴函数呢?

嗯,还是那句口号“PHP是最好的语言!”