<?php
class Shirt
{
public function test()
{
return "Shirt";
}
}
class Sweater extends Shirt
{
public function test()
{
return "Sweater";
}
}
$shirt = new Shirt();
output_shirt($shirt);
function output_shirt(Sweater $shirt) {
echo $shirt->test();
}
Fatal error: Uncaught TypeError: output_shirt(): Argument #1 ($shirt) must be of type Sweater, Shirt given, called in /in/91TQB on line 24 and defined in /in/91TQB:26
Stack trace:
#0 /in/91TQB(24): output_shirt(Object(Shirt))
#1 {main}
thrown in /in/91TQB on line 26
Process exited with code 255.
Fatal error: Uncaught TypeError: Argument 1 passed to output_shirt() must be an instance of Sweater, instance of Shirt given, called in /in/91TQB on line 24 and defined in /in/91TQB:26
Stack trace:
#0 /in/91TQB(24): output_shirt(Object(Shirt))
#1 {main}
thrown in /in/91TQB on line 26
Process exited with code 255.
Output for 5.5.24 - 5.5.35, 5.6.8 - 5.6.28
Catchable fatal error: Argument 1 passed to output_shirt() must be an instance of Sweater, instance of Shirt given, called in /in/91TQB on line 24 and defined in /in/91TQB on line 26
Process exited with code 255.