1

我有以下代码:

foreach(str_split('abcd') as $char) {
    $total += ($char & 1);
}
echo $total;

它输出0. 但是,我希望它输出2,因为ac在它们的 ASCII 二进制表示中是奇数(我相信是 97 和 99)。

似乎无论我传递给什么str_split,我总是以0. 为什么会这样,如何成功计算字符串中设置了第一位的字节?

4

1 回答 1

1

您必须先获取 ASCII 码,您的代码不会这样做。

<?php
foreach(str_split('abcd') as $char) {
    $char=ord($char);  //Missed this?
    $total += ($char & 1);
}
echo $total;  // Outputs 2

?>
于 2013-03-13T15:41:16.400 回答