快速计算案例

Soa*_*Box 1 php optimization

我有很多字符串要在php中处理.我想"修复"它们作为标题案例(使用ucwords(strtolower($str))),但前提是它们都是大写或全部小写.如果它们已经是混合的情况,我只是将它们保留原样.

检查这个的最快方法是什么?似乎for通过字符串将是一个相当缓慢的方式来解决它.

这就是我所拥有的,我认为这将太慢:

function fixCase($str)
{
    $uc = 0;
    $lc = 0;
    for($i=0;$i<strlen($str);$i++)
    {
        if ($str[$i] >= 'a' && $str[$i] <= 'z')
            $lc++;
        else if ($str[$i] >= 'A' && $str[$i] <= 'Z')
            $uc++;
    }

    if ($uc == 0 || $lc == 0)
    {
        return ucwords(strtolower($str));
    }
}
Run Code Online (Sandbox Code Playgroud)

J.C*_*cio 6

只需使用字符串比较(区分大小写)

function fixCase($str)
{
  if ( 
       (strcmp($str, strtolower($str)) === 0) || 
       (strcmp($str, strtoupper($str)) === 0) ) 
  {
    $str = ucwords(strtolower($str));
  }

  return $str;
}
Run Code Online (Sandbox Code Playgroud)