为什么ord的输出总数有不同的值?

时间:2011-09-04 07:02:52

标签: php ascii

**Update**
Fixed : http://codepad.org/6pB0WUm5
by http://stackoverflow.com/users/476/deceze

我有两个代码,基本相同,但为什么,我有不同的输出?

function domain_value($domain)
{
   $split_domain = str_split($domain);
   $ord_count = NULL;
   foreach($split_domain as $key=>$value)
   {
      $ord_count += ord($value);
   }
   return $ord_count;
}
echo domain_value('abc');

echo ord('a')+ord('b')+ord('c');

输出

first output : 294
second output:  98

1 个答案:

答案 0 :(得分:3)

使用时会发生什么:

echo ord('a')+ord('b')+ord('c');

这可能是你在第二个的意图: - )


换句话说,您似乎已离开表达式最后部分的ord

事实上,你通常会得到98的唯一方法是:

echo ('a')+ord('b')+('c')

(仅在第二个学期使用ord),因此您可能需要再次检查。如果你现在似乎指出,你在每个学期都使用ord,那对我来说就可以了。

他们都从294返回97 + 98 + 99abc的ASCII值。