- Output for 5.4.2 - 5.4.45, 5.5.24 - 5.5.29, 5.6.7 - 5.6.13
- Fatal error: Declaration of TestAbstractCovariance::foo() must be compatible with AbstractTest::foo(B $p) in /in/gcKTm on line 17
Process exited with code 255.
<?php
class A {}
class B extends A {}
class C extends B {}
interface InterfaceTest { public function foo(B $p); }
abstract class AbstractTest {
public abstract function foo(B $p);
}
// class TestAbstractContravariance extends AbstractTest {
// public function foo(A $p) {}
// }
class TestAbstractCovariance extends AbstractTest {
public function foo(C $p) {}
}
class TestInterfaceContravariance implements InterfaceTest
{
public function foo(A $p) {}
}
class TestInterfaceCovariance implements InterfaceTest {
public function foo(C $p) {}
}