zendframework/zf2 — pull request #3713 by mwillbanks (2013-02-07 16:18:26+00:00)
Title: Session Container Mismatch & Version Compare fixes for 5.3.3

## Overview
The changes with the new Zend\Stdlib\ArrayObject caused an overall break in Zend\Session\Container when the code was not tested in isolation (meaning there was previous Containers in the session). This is because they were of type \ArrayObject causing an object mismatch; in general the logic was flawed because we should only care if it is Traversable since the main contract is pretty much an array. Overall this causes an upgrade issue for people upgrading on production. The current workaround is to remove all sessions.

Secondly; Zend\Stdlib\ArrayObject and friends that provide functionality for 5.3.4+ accidentally matches builds from distribution patch fixes; for example:
var_dump(version_compare('5.3.3-7+squeeze14', '5.3.3'))
int(1)
When you'd likely expect it to be of int(0). To solve this version compare must be made against the higher version:
var_dump(version_compare('5.3.3-7+squeeze14', '5.3.4'))
int(-1)