PHP 8.1 – Read-only class properties

barrier gate
barrier gate

To ensure the class property will never be modified/changed by itself or children or external calls we can now use a readonly prefix to class property declaration like so: public readonly string $propertyName = 'thisValueWillNeverChange;. The only place when we could override the readonly variable is inside the class constructor.

Read morePHP 8.1 – Read-only class properties

PHP 8.1 – Callable syntax

linked dots structure
linked dots structure

Convert any callable into Closure object to be returned and then used/called when needed. The next syntax (aka First class callable syntax) of $this->methodName(...) is identical in behavior as current: Closure::fromCallable([this, 'methodName']). Do not confuse this syntax to unpacking argument syntax of ...$args.

Read morePHP 8.1 – Callable syntax

PHP 8.1 – Default parameters with “new” keyword

abstract gradients
abstract gradients

Currently we could only assign a default parameter value of nullarray or primitive types in functions and methods. In PHP 8.1 we will be able to provide any custom class as default value for our expected function parameter. This includes defining a class variables inside the parameters as well.

Read morePHP 8.1 – Default parameters with “new” keyword