Menu

Error Identifier: assign.this

← Back to assign.*

Every error reported by PHPStan has an error identifier. Here’s a list of all error identifiers. In PHPStan Pro you can see the error identifier next to each error and filter errors by their identifiers.

Code example #

<?php declare(strict_types = 1);

class Foo
{
	public function doFoo(): void
	{
		$this = new self();
	}
}

Why is it reported? #

PHP does not allow re-assigning $this. The $this variable is a special read-only reference to the current object instance and cannot be used as an assignment target. This applies to direct assignments, compound assignments, array destructuring, and foreach loop variables.

This error is reported regardless of context — inside instance methods, static methods, and even standalone functions where $this is not available at all.

This error is not ignorable.

How to fix it #

Use a different variable name:

 class Foo
 {
 	public function doFoo(): void
 	{
-		$this = new self();
+		$instance = new self();
 	}
 }

When $this appears as a foreach loop variable, rename it:

-foreach ($items as $this) {
+foreach ($items as $item) {
 	var_dump($item);
 }

Non-ignorable error #

This error cannot be ignored using @phpstan-ignore or the ignoreErrors configuration. Non-ignorable errors indicate code that would cause a crash or a fatal error at runtime, or a fundamental problem in the analysed code that must be addressed.

Rules that report this error #

  • PHPStan\Rules\Variables\InvalidVariableAssignRule [1]
Theme
A
© 2026 PHPStan s.r.o.