确定没有内置函数的字符串长度

时间:2014-07-15 05:22:46

标签: php

嗯,这有效,但我希望有人可以告诉我如何改进它。似乎有一种更清洁的方法:

function beanCounter($bean)
{
    $counter = 0;
    $i = 0;
    while($bean[$i] != '') {
        if($bean[$i] != ' ') {
        $counter++;
        }
        $i++;
    }
    return $counter;
}

// following test case returns 26
$testString = "a b c d e f g h i j k l m n o p q r s t u v w x y z";
$stringLength = beanCounter($testString);
echo($stringLength);

我在想,如果我使用正则表达式,我实际上只能计算字符,并能够在多句话字符串中考虑撇号或句号。显然有内置功能可以做到这一点,但我对它们不感兴趣

谢谢!

3 个答案:

答案 0 :(得分:0)

甚至更干净:

while(ctype_alpha($bean[$i++])) {
}

答案 1 :(得分:0)

你可以使用。这会将每个以空格分隔的元素视为新字符并将其存储在数组中,并使用sizeof($arr)来计算值。

$arr[] = explode(" ",$teststring);

答案 2 :(得分:-1)

 while($bean[$i] != '') {
        if(ctype_alpha($bean[$i])) {
        $counter++;
        }
        $i++;
    }

使用ctype_alpha - 检查字母字符

检查提供的字符串中的所有字符是否为字母。在标准C语言环境中,字母只是[A-Za-z]而ctype_alpha()等同于(ctype_upper($ text)|| ctype_lower($ text))如果$ text只是一个字符,但其他语言都有字母被认为既不是大写也不是小写。

  

see php manual