You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Language: resource used as array offset TypeError — Zend Warning + int cast (zend_hash.c / zend_execute.c) #29550
On Zend 8.2, using a resource as an array offset emits E_WARNING (Resource ID#N used as offset, casting to integer (N)) and stores under the cast integer key. VM/JIT throw TypeError: Illegal offset type and refuse the write — observable control-flow and data divergence (not just message text).
Probed 2026-08-09 @ 092e9d1ee8 vs Zend 8.2.32. JIT matches VM.
Verification: VM + JIT match Zend warn+cast for $a[$resource] set/isset/unset (resource id may differ by process). PHPUnit ResourceArrayOffsetWarnCastTest|IllegalOffsetObjectKeyNewInTryTest OK. Inventory 7292/7292 + spine sync OK.
php-src-strict; PHP-in-PHP in ResourceArrayOffsetSupport / HashTableResourceKeyLlvm — no new C runtime.
Activity
PurHur commentedon Aug 9, 2026
claim: Lane A implementer — starting this run (resource array offset warn+cast vs TypeError)
Language: resource array offsets warn+cast like Zend (#29550) (#29572)
PurHur commentedon Aug 9, 2026
Merged via #29572
Verification: VM + JIT match Zend warn+cast for
$a[$resource]set/isset/unset (resource id may differ by process). PHPUnitResourceArrayOffsetWarnCastTest|IllegalOffsetObjectKeyNewInTryTestOK. Inventory 7292/7292 + spine sync OK.php-src-strict; PHP-in-PHP in
ResourceArrayOffsetSupport/HashTableResourceKeyLlvm— no new C runtime.