<?php
namespace Test;
class A
{
public function b(callable $b)
{
$b();
}
public function c(int $c)
{ }
public function d()
{
echo 'Hello, World' . PHP_EOL;
}
}
$foo = new A();
echo is_callable(array($foo, 'd')) . PHP_EOL;
$foo->b(array($foo, 'd'));
$foo->c(1);
$foo->c('a');
1
Hello, World
Fatal error: Uncaught TypeError: Test\A::c(): Argument #1 ($c) must be of type int, string given, called in /in/FFVCI on line 25 and defined in /in/FFVCI:12
Stack trace:
#0 /in/FFVCI(25): Test\A->c('a')
#1 {main}
thrown in /in/FFVCI on line 12
Process exited with code 255.
Output for 7.3.12 - 7.3.33, 7.4.0 - 7.4.33
1
Hello, World
Fatal error: Uncaught TypeError: Argument 1 passed to Test\A::c() must be of the type int, string given, called in /in/FFVCI on line 25 and defined in /in/FFVCI:12
Stack trace:
#0 /in/FFVCI(25): Test\A->c('a')
#1 {main}
thrown in /in/FFVCI on line 12
Process exited with code 255.
1
Hello, World
Fatal error: Uncaught TypeError: Argument 1 passed to Test\A::c() must be of the type integer, string given, called in /in/FFVCI on line 25 and defined in /in/FFVCI:12
Stack trace:
#0 /in/FFVCI(25): Test\A->c('a')
#1 {main}
thrown in /in/FFVCI on line 12
Process exited with code 255.
1
Hello, World
Catchable fatal error: Argument 1 passed to Test\A::c() must be an instance of Test\int, integer given, called in /in/FFVCI on line 24 and defined in /in/FFVCI on line 12
Process exited with code 255.
Output for 5.3.0 - 5.3.29
1
Catchable fatal error: Argument 1 passed to Test\A::b() must be an instance of Test\callable, array given, called in /in/FFVCI on line 23 and defined in /in/FFVCI on line 7
Process exited with code 255.