Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Optional Parameter Are After Compulsory Parameters

Optional parameters have a default value. When running the functioncall, PHP assigns the parameters by position. This way, the first parameter would get the value, even though it has the default value, and then, there will be a missing argument for the second one.

Since PHP 8.0, PHP reports that situation. It might be turned into an error in PHP 9.0

PHP code

<?php

function foo($a = 1, $b) {
    print $a $b\n;
}

foo(1, 2);

?>

Before

PHP Deprecated:  Required parameter $b follows optional parameter $a

Deprecated: Required parameter $b follows optional parameter $a
1 2

After

PHP Deprecated:  foo(): Optional parameter $a declared before required parameter $b is implicitly treated as a required parameter

Deprecated: foo(): Optional parameter $a declared before required parameter $b is implicitly treated as a required parameter
1 2

PHP version change

This behavior changed in 8.0.

Error Messages

Extension

Analyzer

© 2023-2026, Damien Seguy - Exakat