<?php
interface Comparable
{
public function compare(self $compare);
}
// Which is then implemented:
class Foo implements Comparable
{
public function compare(self $compare)
{}
}
class Bar implements Comparable
{
public function compare(self $compare)
{}
}
$foo = new Foo();
$bar = new Bar();
$foo->compare($bar);
$bar->compare($foo);
Fatal error: Declaration of Foo::compare(Foo $compare) must be compatible with Comparable::compare(Comparable $compare) in /in/j0v4O on line 11
Process exited with code 255.
Fatal error: Declaration of Foo::compare(Foo $compare) must be compatible with Comparable::compare(Comparable $compare) in /in/j0v4O on line 9
Process exited with code 255.
Fatal error: Declaration of Foo::compare() must be compatible with Comparable::compare(Comparable $compare) in /in/j0v4O on line 10
Process exited with code 255.
Output for 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0
Catchable fatal error: Argument 1 passed to Foo::compare() must be an instance of Foo, instance of Bar given, called in /in/j0v4O on line 24 and defined in /in/j0v4O on line 11
Process exited with code 255.
Output for 5.1.0 - 5.1.6
Fatal error: Argument 1 passed to Foo::compare() must be an instance of Foo, called in /in/j0v4O on line 24 and defined in /in/j0v4O on line 11
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Fatal error: Argument 1 must be an instance of Foo in /in/j0v4O on line 11
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING in /in/j0v4O on line 2
Process exited with code 255.