KeyedContainer
Note
This is a point-in-time snapshot of the API documentation from January 2026. Going forward, we will not be maintaining a public copy of these references, and recommend users to refer to the built-in signature helpers available in the Hack LSP instead for complete and up-to-date information.
KeyedContainer allows you to do (foreach $value as $k => $v, $value[$key]) and is an
interface used by both Hack arrays (vec/dict/keyset) and Hack collections (Vector/Map/Set)
If you need to iterate over an array / collection with keys, use KeyedContainer; otherwise, use Container.
Without iterating, you can access keys directly: $keyed_container[$key].
Guides
Interface Synopsis
namespace HH;
interface KeyedContainer implements Container<Tv>, KeyedTraversable<Tk, Tv> {...}