我有以下代码:
foreach(str_split('abcd') as $char) {
$total += ($char & 1);
}
echo $total;
输出0
。但是,我希望它输出2
,因为它们的ASCII二进制表示中的a
和c
是奇数(我相信97和99)。
似乎无论我传递给str_split
的是什么,我总是以0
结束。为什么这样,以及如何成功计算第一个位设置的字符串中的字节?
答案 0 :(得分:1)
你必须首先获取ASCII码,你的代码不会这样做。
<?php
foreach(str_split('abcd') as $char) {
$char=ord($char); //Missed this?
$total += ($char & 1);
}
echo $total; // Outputs 2
?>