i noticed there was a 3-month old, low priority ticket for the if Odd failing. i came up with what is probably a dirty hack, but basically i changed:
line 647 in VariableData.php from
function Odd() {
return !$this->iteratorPos % 2;
}
to
function Odd() {
return !$this->Even();
}
it seems to work, and so far hasn't caused any weird spikes in performance. hope this helps those of you in need of a quick fix, until someone who knows PHP can fix it properly.