关于PHP的那些坑

因为PHP是弱类型语言,常常会发生许多意想不到的问题,所以,我们再次一一细数这些我们踏过的坑!!!

1)

foreach中自动回将key为数值的转化成整型,造成无法匹配

function translate($keyword)
{
    $trMap = [ 
        'google' => '谷歌',
        '360' => '360',
    ]; 
    foreach ($trMap as $key => $value) {
        if (strpos($keyword, $key) !== false) {
            return $value;
        }
    }   
    
    return '其他';
}

echo translate("google") . PHP_EOL;
echo translate('360') . PHP_EOL;

结果:
//谷歌
//其他

  修复bug:

function translate($keyword)
{
    $trMap = [ 
        'google' => '谷歌',
        '360' => '360',
    ]; 
    foreach ($trMap as $key => $value) {
        if (strpos($keyword, (string)$key) !== false) {
            return $value;
        }
    }   
    
    return '其他';
}

echo translate("google") . PHP_EOL;
echo translate('360') . PHP_EOL;

结果:
//谷歌
//360

建议: 如果确定变量的类型,一定要严格转化之后 ,再进行操作

2)

猜你喜欢

转载自www.cnblogs.com/xingxia/p/php_bug.html
今日推荐