<?php
class Car
{
}
class Bike
{
}
function compareCars(array $cars)
{
array_walk($cars, function(Car $value) {});
}
$cars1 = [new Car(), new Car()];
$cars2 = [new Car(), new Bike()];
compareCars($cars1);
compareCars($cars2);
Fatal error: Uncaught TypeError: {closure}(): Argument #1 ($value) must be of type Car, Bike given in /in/6YZ0r:13
Stack trace:
#0 [internal function]: {closure}(Object(Bike), 1)
#1 /in/6YZ0r(13): array_walk(Array, Object(Closure))
#2 /in/6YZ0r(20): compareCars(Array)
#3 {main}
thrown in /in/6YZ0r on line 13
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: {closure}(): Argument #1 ($value) must be of type Car, Bike given in /in/6YZ0r:13
Stack trace:
#0 [internal function]: {closure}(Object(Bike), 1)
#1 /in/6YZ0r(13): array_walk(Array, Object(Closure))
#2 /in/6YZ0r(20): compareCars(Array)
#3 {main}
thrown in /in/6YZ0r on line 13
Process exited with code 255.
Fatal error: Uncaught TypeError: Argument 1 passed to {closure}() must be an instance of Car, instance of Bike given in /in/6YZ0r:13
Stack trace:
#0 [internal function]: {closure}(Object(Bike), 1)
#1 /in/6YZ0r(13): array_walk(Array, Object(Closure))
#2 /in/6YZ0r(20): compareCars(Array)
#3 {main}
thrown in /in/6YZ0r on line 13
Process exited with code 255.