#PHP has inline caches and almost nobody knows 👀
$obj->name: first access does a hash lookup. But the engine stores the result offset in a "cache slot" embedded in the opcode.
Next time, same class? Direct read. No lookup. Works for methods, constants, type checks too.