PHP 8.0: Deprecate required parameters after optional parameters in function/method signatures

When define or declare function/method adding a required parameter after optional is deprecated. This happen from PHP 8.0 onward version.

Deprecated: Required parameter $required_parameters follows optional parameter $optional_parameter in XYZ on line 123

Example

function abc($optional_parameter = null, $required_parameters) {
//           ^^ optional parameter , ^^ required parameter
}

Solution

function abc($optional_parameter, $required_parameters) {
//           ^^ optional parameter , ^^ required parameter
}

OR

function abc(?String $optional_parameter, $required_parameters) {
//           ^^ optional parameter , ^^ required parameter
}

The deprecation does not apply if there is a type declared on the optional parameter, and the default value is null