<?php
class A {
public function map(array $routes = [], array $options = []) {}
}
class B extends A {
public function map(array $routes = [], ?array $options = null) {}
}
$b = new B();
$b->map([], []);
$b->map([], null);
$a = new A();
$a->map([], []);
$a->map([], null); // Fatal error
Fatal error: Uncaught TypeError: A::map(): Argument #2 ($options) must be of type array, null given, called in /in/OYbIf on line 17 and defined in /in/OYbIf:4
Stack trace:
#0 /in/OYbIf(17): A->map(Array, NULL)
#1 {main}
thrown in /in/OYbIf on line 4
Process exited with code 255.
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Fatal error: Uncaught TypeError: A::map(): Argument #2 ($options) must be of type array, null given, called in /in/OYbIf on line 17 and defined in /in/OYbIf:4
Stack trace:
#0 /in/OYbIf(17): A->map(Array, NULL)
#1 {main}
thrown in /in/OYbIf on line 4
Process exited with code 255.
Output for 7.4.0 - 7.4.33
Fatal error: Uncaught TypeError: Argument 2 passed to A::map() must be of the type array, null given, called in /in/OYbIf on line 17 and defined in /in/OYbIf:4
Stack trace:
#0 /in/OYbIf(17): A->map(Array, NULL)
#1 {main}
thrown in /in/OYbIf on line 4
Process exited with code 255.