public function container($subject)
    {
        return is_array($subject) ? 'array' : (
            $subject && is_object($subject) ? (
                $subject instanceof \Traversable ? (
                    $subject instanceof \ArrayAccess ? 'arrayAccess' : 'traversable'
                ) : 'object'
            ) : false
        );
    }
public function container($subject)
    {
        return is_array($subject) ? 'array' : (
            $subject && is_object($subject) ? (
                $subject instanceof \Traversable ? (
                    $subject instanceof \ArrayAccess ? 'arrayAccess' : 'traversable'
                ) : 'object'
            ) : false
        );
    }
public function container ( $ subject ) { return is_array ( $ subject ) ? 'array' : ( $ subject && is_object ( $ subject ) ? ( $ subject instanceof \ Traversable ? ( $ subject instanceof \ ArrayAccess ? 'arrayAccess' : 'traversable' ) : 'object' ) : false ) ; }
Array or object.

Superset of all other object and array type(ish) checkers; here:
- iterable, loopable, indexedIterable, keyedIterable, indexedLoopable,
keyedLoopable, class, array, indexedArray, keyedArray

'arrayAccess' is a Traversable ArrayAccess object.

@param mixed $subject
object|array to pass validation.

@return string|bool
String (array|arrayAccess|traversable|object) on pass,
boolean false on validation failure.
Array or object .