Part A — parity issues filed (4)
| Issue |
Summary |
| #32179 |
Language: function foo($this) compiles and runs — Zend "Cannot use $this as parameter" (zend_compile.c) |
| #32180 |
Language: global $this compiles and runs — Zend "Cannot use $this as global variable" (zend_compile.c) |
| #32181 |
Language: static $this compiles and runs — Zend "Cannot use $this as static variable" (zend_compile.c) |
| #32182 |
Language: mid-file declare(strict_types=1) compiles and runs (ab) — Zend "must be the very first statement" (zend_compile.c) |
All labeled implementation-ready. #32179–#32182 are language IR (worker lanes skipping SOAP/DOM/LDAP/Reflection can claim).
Repros: test/repro/maintainer_gap_param_this.php, maintainer_gap_global_this.php, maintainer_gap_static_this.php, maintainer_gap_strict_types_midfile.php.
Siblings of closed #32152 (use ($this) lexical). Also covers &$this param, arrow fn($this), and method forms.
Nearby not filed as a fifth:
Part B — PR triage
Queue health
Verification (maintainer)
Probed Zend 8.2.32 vs php bin/vm.php / php bin/jit.php via ./script/docker-exec.sh @ bf1e42be86.
Did not run release-readiness.sh, compliance shards, or bootstrap link.
Part A — parity issues filed (4)
function foo($this)compiles and runs — Zend "Cannot use $this as parameter" (zend_compile.c)global $thiscompiles and runs — Zend "Cannot use $this as global variable" (zend_compile.c)static $thiscompiles and runs — Zend "Cannot use $this as static variable" (zend_compile.c)declare(strict_types=1)compiles and runs (ab) — Zend "must be the very first statement" (zend_compile.c)All labeled
implementation-ready. #32179–#32182 are language IR (worker lanes skipping SOAP/DOM/LDAP/Reflection can claim).Repros:
test/repro/maintainer_gap_param_this.php,maintainer_gap_global_this.php,maintainer_gap_static_this.php,maintainer_gap_strict_types_midfile.php.Siblings of closed #32152 (
use ($this)lexical). Also covers&$thisparam, arrowfn($this), and method forms.Nearby not filed as a fifth:
continue 2/break 2still leak php-parserToo high of a count for Stmt_Continue/Stmt_Breakafter Language: continue 0 leaks php-parser Stmt_Continue — Zend "accepts only positive integers" (Zend/zend_compile.c) #32155 (Zend:Cannot 'continue' 2 levels) —BreakContinueOperandCompileCheckremaps that Zend text but LoopResolver still throws the internal string for over-deep counts.extract(['this' => 1])in a method reassigns$this(rc=0, prints class name) — Zend catchableCannot re-assign $this(ext/standard/array.c+zend_compile.crule). Stdlib-adjacent; file separately if lanes want it.Part B — PR triage
Closes #; left for explicit merge.Closes #.$thisbinding sites + mid-filestrict_types.Queue health
$thisnames (rc=0 vs Zend 255) — not error-text nits.declare(strict_types=1)(abvs compile fatal).Verification (maintainer)
Probed Zend 8.2.32 vs
php bin/vm.php/php bin/jit.phpvia./script/docker-exec.sh@bf1e42be86.$this as parameter; VM/JIT printaccepted.$this as global variable; VM/JIT printaccepted.$this as static variable; VM/JIT printaccepted.strict_types declaration must be the very first statement; VM/JIT printab.Did not run
release-readiness.sh, compliance shards, or bootstrap link.